SQL Server:select row_number()不清楚

时间:2015-03-10 13:03:29

标签: sql-server

此存储过程创建一个测试表并在其中插入一些虚拟值。我无法得到这个:

  

SELECT ROW_NUMBER()OVER(ORDER BY(a.n)

什么是a.n? ' a'和' n'有一个' a'在' FROM t4 AS'但那就是选择'声明与此不同,所以我不认为它可以从那里使用到这里

CREATE TABLE dbo.TestTable(
      Col1 nchar(4000) NOT NULL
      ,Col2 nvarchar(MAX) NOT NULL
);


WITH 
    t4 AS (SELECT n FROM (VALUES(0),(0),(0),(0)) t(n))
    ,t256 AS (SELECT 0 AS n FROM t4 AS a CROSS JOIN t4 AS b CROSS JOIN t4 AS c CROSS JOIN t4 AS d)
    ,t16M AS (SELECT ROW_NUMBER() OVER (ORDER BY (a.n)) AS num FROM   t256 AS a CROSS JOIN t256 AS b CROSS JOIN t256 AS c)

1 个答案:

答案 0 :(得分:1)

A是您为CTE命名的别名t256(t256 AS a),它似乎是一个256行的表,其中列名为n,值全为零。

结果是16 777 216行,数字从1开始。