用自交叉連接生成數字表

先新建一個表

IF OBJECT_ID('dbo.num', 'U')IS NOT NULL DROP TABLE dbo.num;
CREATE TABLE dbo.num(num INT NOT NULL PRIMARY KEY);

INSERT INTO dbo.num(num)
VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9);

如果要生成1-1000的整數序列。可以對num表的三個實例進行交叉連接,每個實例代表10的不同次冪(1, 10, 100),每個實例的數字誠意它所代表的10的冪,再把結果加起來,最後加1.
SELECT D3.num * 100 + D2.num * 10 + D1.num + 1 as n
 FROM num as D1
    CROSS JOIN num as D2
    CROSS JOIN num as D3
    order by n;      


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章