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

Rei*_*l-- 7 t-sql sql-server terminology

以下是有效的SQL语法:

SELECT *
    FROM (VALUES ('p','q'),('x','y')) AS TableLiteral(Col1, Col2)
Run Code Online (Sandbox Code Playgroud)

并返回表:

  | Col1 | Col2
----------------
1 |  p   |  q
2 |  x   |  y
Run Code Online (Sandbox Code Playgroud)

这种语法可以进一步用于CTE等.

这有名字吗?我一直称它们为"TableLiterals",类似于字符串文字和正则表达式文字.

是否有一个将被广泛认可的术语.

Luk*_*zda 6

它被称为:表值构造函数

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

VALUES()[,... n]

有关ANSI标准:F641,行和表构造函数的更多信息,请 选择不使用