SELECT * FROM(VALUES(x,y))的名称AS TableLiteral(Col1,Col2)

时间:2017-08-02 16:44:21

标签: sql-server tsql terminology

以下是有效的SQL语法:

SELECT *
    FROM (VALUES ('p','q'),('x','y')) AS TableLiteral(Col1, Col2)

并返回表格:

  | Col1 | Col2
----------------
1 |  p   |  q
2 |  x   |  y

此语法可以进一步用于CTE等。

这有名字吗? 我一直用字符串文字和正则表达式文字来称它们为“TableLiterals”。

是否有一个词会被广泛认可。

2 个答案:

答案 0 :(得分:6)

它被称为: Table Value Constructor

  

指定要构造到表中的一组行值表达式。 Transact-SQL表值构造函数允许在单个DML语句中指定多行数据。 可以在INSERT语句的VALUES子句中,MERGE语句的USING子句中以及FROM子句中派生表的定义中指定表值构造函数。

     

VALUES()[,... n]

有关ANSI标准的更多信息:F641, Row and table constructors select without from

答案 1 :(得分:2)