选择多个静态值

hun*_*ind 11 sql-server

因为我们可以在SQL中编写以返回单个静态值

select "Jan" as StartMonth
Run Code Online (Sandbox Code Playgroud)

以类似的方式,SQL应该允许写入以返回同一列中的多个值

select {"Jan", "Feb", "Mar"} as Qtr1, {"Apr", "May", "Jun"} as Qtr2
Run Code Online (Sandbox Code Playgroud)

当我们需要数据作为表来执行连接并且数据在Sp级别是未知的时,即它来自参数时,创建临时表并在临时表中插入拆分值似乎是不必要的任务.如果MS SQL Server中存在此类功能,请更正我.或者更好的方法来使用除了pivot和temp表之外的其他方法.

Tim*_*ers 31

这会给你你想要的吗?

SELECT 'Jan' AS Qtr1, 'Apr' AS Qtr2
UNION ALL SELECT 'Feb' AS Qtr1, 'May' AS Qtr2
UNION ALL SELECT 'Mar' AS Qtr1, 'Jun' AS Qtr2
Run Code Online (Sandbox Code Playgroud)

  • 这看起来很酷.你甚至可以缩短它:SELECT'Jan'AS Qtr1,'Apr'As Qtr2 UNION SELECT'Dan','May'UNION SELECT'Mar','Jun' (4认同)

Wil*_*ard 6

我知道这个问题被标记为,但是当我寻找 Postgres 答案时,它是谷歌搜索结果中的佼佼者,所以这里是 Postgres

这个:

VALUES ('Jan', 'Apr'), ('Feb', 'May'), ('Mar', 'Jun');
Run Code Online (Sandbox Code Playgroud)

相当于:

SELECT 'Jan' AS column1, 'Apr' AS column2
UNION ALL SELECT 'Feb', 'May'
UNION ALL SELECT 'Mar', 'Jun'
Run Code Online (Sandbox Code Playgroud)