2

我在某个地方看到了 SQL Server 中存在的一种方法,但我无法再次找到它......

它简化了以下 SQL 逻辑:

SELECT 'CategoryA','DescriptionA'
UNION
SELECT 'CategoryB','DescriptionB'
UNION
SELECT 'CategoryC','DescriptionC' 

对于这样的事情:

SELECT ROWS(('CategoryA','DescriptionA'), 
            ('CategoryB', 'DescriptionB'), 
            ('CategoryC', 'DescriptionC'))

谁能告诉我该功能可能是什么及其语法?

4

1 回答 1

3

在 SQL Server 2008 中,您可以使用表值构造函数

SELECT *
FROM (VALUES ( 'CategoryA', 'DescriptionA'),
             ( 'CategoryB', 'DescriptionB'),
             ( 'CategoryC', 'DescriptionC')) V(Col1, Col2)

注意:这具有相同的语义,UNION ALL而不是UNION 尽管你总是可以SELECT DISTINCT从中获得。

于 2013-07-02T13:11:19.007 回答