我發現了一段很好的代碼,它創建了一個包含 100.000 條測驗記錄的表。我完全迷失了語法。我知道它是一個表建構式(來自值(0).....),我知道它是一個交叉連接(部分:CreateTable as tt,CreateTable as st 等......),但我如何理解公式創建 100.000 條記錄?
truncate table t2;
with CreateTable as
(
select d
from (values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) as d(d)
)
insert into t2(col1)
select 10000 * tt.d 1000 * st.d 100 * h.d 10 * t.d s.d 1
from CreateTable as tt, CreateTable as st, CreateTable as h, CreateTable as t, CreateTable as s;
uj5u.com熱心網友回復:
沒有公式可以創建 100 000 行。
只是讀到這里我覺得:你從一個 10 行的表開始,然后代碼用別名(tt、st、h、t 和 s)將表與自身連接起來。
所以在開始時有 10 行,在 4 次連接之后,以 10^5 行(100 000 行)結束。
正如 Stu 所說,這是一個笛卡爾積。
uj5u.com熱心網友回復:
假設您使用的是 SQL Server:
create table dbo.test_table(id int)
declare @id int = 1
WHILE @id < 100001
BEGIN
INSERT INTO test_table(id)
SELECT @id
SET @id = @id 1
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418718.html
標籤:
上一篇:Divs間距與邊距不均勻
