这一定很简单,我很不情愿地问了这个问题 - 但我无法解决。我有一个查询(以迂回的方式)返回 2 个计数:
Col1 | COL2
123 456
但我需要返回:
123 | COL1
456 | COL2
我尝试过的
我查看了 UNPIVOT
,但由于这些是简单(独立)的行,因此似乎没有必要(即我不需要旋转/取消旋转标识符或任何东西)。
查询
SELECT SUM(CASE WHEN [CONDITION] THEN 1 ELSE 0 END) as Col1,
SUM(CASE WHEN [CONDITION] THEN 1 ELSE 0 END) as Col2
FROM MyTable
最佳答案
使用UNION
:
SELECT COL1 AS VALUE, 'COL1' AS COL
FROM yourTable
UNION ALL
SELECT COL2 AS VALUE, 'COL2' AS COL
FROM yourTable
如果要从整个UNION
查询中进行选择,可以将其包装起来,然后选择出来:
SELECT t.VALUE,
t.COL
FROM
(
SELECT COL1 AS VALUE, 'COL1' AS COL
FROM yourTable
UNION ALL
SELECT COL2 AS VALUE, 'COL2' AS COL
FROM yourTable
) t
关于sql - 如何将这些列转换/转置为 SQL 中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447560/