在MS SQL Server 2008和更新,它可以指定使用values
的子查询“文字”表:如何在CTE中简洁地指定“文字”表格?
select * from (
values (1,2),
(3,4)
) as foo(bar,baz)
不过,我还没有想出一个合理的方式在with
子句指定此(CTE)。
我希望下面会的工作,因为它工作在不断程序员友好的PostgreSQL就好了... ...但它给了与SQL Server中的语法错误:
with foo(bar,baz) as (
values (1,2),
(3,4)
)
select * from foo;
这个另一种形式确实工作但似乎过于冗余,而且容易出错:
with foo as (
select * from (
values (1,2),
(3,4)
) as foo(bar, baz)
)
select * from foo;
是否有一个CTE指定文字表更简洁的方式,在SQL服务器?
不,在CTE中没有不错的方法。那个不必要的SELECT让我烦恼! –
这几乎是所有RDBMS中的标准。似乎人们总是希望在SQL中更简洁,但它是一种非常冗长的语言,通常情况下,更明确的是会产生更好的结果。 – JNevill
够正确。我想我被PostgreSQL所迷惑,它实际上试图让这样的事情变得容易。 : -/ –