我想在sql 2000中将行2行转换为列2行,而不使用pivot

我想在sql 2000中将行2行转换为列2行,而不使用pivot,sql,sql-server-2000,Sql,Sql Server 2000,我想在sql 2000中将行2转换为列2 不使用枢轴 例如: 我希望输出为 Projects Count --------- ------- A 78 B 68 C 3 如果我理解正确,您确实需要pivot查询: select 'A' as Projects, A as my_count from mytab union all select 'B' as Projects, B as my_count from mytab union

我想在sql 2000中将行2转换为列2 不使用枢轴

例如:

我希望输出为

Projects  Count
--------- ------- 
A         78
B         68  
C         3

如果我理解正确,您确实需要pivot查询:

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

(我已经用我的计数替换了计数,因为计数在SQL中是一个保留字)。

很抱歉,但是你的示例对我来说没有意义-你的输入只包含一行?@Frank-我想说OP希望将值从列移到另一个表的行中。可能比我的示例更简洁,但是这是否会解析为三个表扫描而不是一个表扫描?@Dems是的,这将导致三个表扫描,因此您的解决方案更高效。
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
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