以下是有效的SQL语法:
SELECT *
FROM (VALUES ('p','q'),('x','y')) AS TableLiteral(Col1, Col2)
并返回表格:
| Col1 | Col2
----------------
1 | p | q
2 | x | y
此语法可以进一步用于CTE等。
这有名字吗? 我一直用字符串文字和正则表达式文字来称它们为“TableLiterals”。
是否有一个词会被广泛认可。
答案 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)