2017-08-02 36 views
7

以下是有效的SQL語法:名稱爲SELECT * FROM(VALUES(X,Y))AS TableLiteral(Col1中,col2的)

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

,並返回表:

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

這語法可以進一步用於CTE等。

是否有這樣的名稱? 我一直稱他們爲「TableLiterals」類比字符串文字和正則表達式文字。

有沒有一個術語會被廣泛認可。

+2

[表值構造函數](https://docs.microso ft.com/en-us/sql/t-sql/queries/table-value-constructor-transact-sql) –

+0

我認爲你正在尋找表值構造函數 – scsimon

回答

6

它被稱爲:Table Value Constructor

指定一組行值表達式來構造插入表中。 Transact-SQL表值構造器允許在單個DML語句中指定多行數據。 可以在INSERT語句的VALUES子句中,MERGE語句的USING子句中以及FROM子句中的派生表的定義中指定表值構造函數。

VALUES()[,... n]的有關ANSI標準

更多信息:F641, Row and table constructors select without from

相關問題