我想行轉換2行的2列在SQL 2000 不使用樞我想行轉換2行作爲SQL 2000中2列,而無需使用樞
如:
A B C
---- ---- -------
78 68 3
我要輸出作爲
Projects Count
--------- -------
A 78
B 68
C 3
我想行轉換2行的2列在SQL 2000 不使用樞我想行轉換2行作爲SQL 2000中2列,而無需使用樞
如:
A B C
---- ---- -------
78 68 3
我要輸出作爲
Projects Count
--------- -------
A 78
B 68
C 3
如果我理解正確的話,你確實需要一個支點查詢:
select 'A' as Projects, A as my_count from mytab
union all
select 'B' as Projects, B as my_count from mytab
union all
select 'C' as Projects, C as my_count from mytab
(我用count替換count爲my_count,因爲COUNT是SQL中的保留字)。
可能比我的例子更整齊,但這是否解析爲三個表掃描而不是一個? – MatBailie 2011-06-07 12:09:23
@Dems是的,這將導致3個表掃描,所以你的解決方案更有效率。 – 2011-06-07 12:22:46
非常坦率的謝謝你,這解決了我的問題。 – 2011-06-09 09:01:52
SELECT
pivot.field,
CASE pivot.field
WHEN 'A' THEN A
WHEN 'B' THEN B
WHEN 'C' THEN C
END as value
FROM
my_table
CROSS JOIN
(SELECT 'A' AS field UNION ALL SELECT 'B' UNION ALL SELECT 'C') AS pivot
對不起,但你的例子對我來說沒有意義 - 你的輸入只包含1行? – 2011-06-07 11:33:06
@Frank - 我會說OP想要將列中的值移動到另一個表的行中。 – 2011-06-07 11:36:06