SQL Server:SELECT n FROM(VALUES(0),(0),(0),(0))t(n)

时间:2015-03-09 15:05:34

标签: sql-server

我在剧本中看到了这个

SELECT n FROM (VALUES(0),(0),(0),(0)) t(n)

我知道它的作用。它返回一个名为'n'的列,其中包含4行,每行的值为0。 但是,这是什么意思?什么是t(n),什么是'n'?

2 个答案:

答案 0 :(得分:5)

t是表别名。虽然n是要提供给列的名称

SELECT * FROM (VALUES(0),(0),(0),(0)) TheAlias(theColumn)

给出:

theColumn
0
0
0
0

答案 1 :(得分:4)

这是一个table value constructor。 t是表的别名,n是列名。一个更好的例子可能会让它更清晰;

SELECT 
    MyData.Column1, 
    MyData.Column2 
FROM (VALUES(1, 'Tom'),
            (2, 'Dick'),
            (3, 'Harry'),
            (4, 'Ermintrude')
      ) MyData(Column1, Column2)

返回

Column1     Column2
----------- ----------
1           Tom
2           Dick
3           Harry
4           Ermintrude