Transact-SQL中是否有表格文字?

dav*_*vid 27 sql t-sql sql-server

根据http://www.storytotell.org/blog/2008/11/14/literal-tables-and-updates-with-joins-in-sql.html

以下内容有效:

SELECT * 
        FROM VALUES 
        ('Lisp', 50, true), 
        ('Scheme', 30, true), 
        ('Clojure', 1, true) 
        AS languages (name, age, lispy)
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用.

我能得到的最好的是

With languages (name, age, lispy) as
(
    select 'Lisp', 50, 'true' union all 
    select 'Scheme', 30, 'true' union all 
    select 'Clojure', 1, 'true'
)
select * from languages
Run Code Online (Sandbox Code Playgroud)

它使用公用表表达式并不是很整洁.

在t-sql中有没有类似于表格的文字?

Gab*_*abe 45

如果你有SQL Server 2008,你可以在允许派生表的任何地方使用它,尽管它只允许你拥有多达1000行:http://msdn.microsoft.com/en-us/library/dd776382(SQL.100 )的.aspx

这是文档中的一个示例(http://msdn.microsoft.com/en-us/library/ms177634(SQL.100).aspx):

SELECT *
FROM (
    VALUES (1, 2),
           (3, 4),
           (5, 6),
           (7, 8),
           (9, 10)
) AS MyTable(a, b)
Run Code Online (Sandbox Code Playgroud)

请注意该VALUES子句的括号.