1

我已经浏览了所有类似的主题,但似乎无法解决我的问题。我有一张这样的桌子:

id[PK] 键[PK] 值
--------------------------------
22 ingfs 东1
22 存储 stgeast1
23 ingfs 东2
23 存储 stgeast2
24 ingfs 东3
24 存储 stgeast3

我想得到:

ingfs 存储
----------------
东1 stgeast1
东2 stgeast2
东3 stgeast3

我已经尝试过数据透视表示例,但似乎无法正常工作。看起来这应该很简单,但我无法理解它。提前感谢您的任何帮助。

rjl

4

2 回答 2

2
select
    max(case when key = 'ingfs' then value end) as ingfs,
    max(case when key = 'storage' then value end) as storage
from Table1
group by id
order by 1, 2

sql fiddle demo

于 2013-09-18T05:37:51.020 回答
0

以下内容对您有用吗?

WITH i AS (
    SELECT id, 
            value 
        FROM table_name 
        WHERE key = 'ingfs'),
s AS (
    SELECT id, 
            value 
        FROM table_name 
        WHERE key = 'storage')
SELECT i.value AS ingfs, 
        s.value AS storage
    FROM i
    JOIN s on ( i.id = s.id ) ;
于 2013-09-18T01:03:05.437 回答