SQL - 比较一个表中的数据

时间:2016-06-28 16:24:52

标签: sql

我对PL / SQL有点新意,我不确定比较同一个表中的数据的最佳方法是什么。

因此,有一个存储用户设置的表,但并非所有用户都具有相同的设置。我最好用一个例子的片段展示它:

User   Setting   Value        
----   -------   -----
Carol  Timezone  GMT
Carol  PageSize  300
Greg   Timezone  EST
Greg   PageSize  300
Greg   Duration  10 
Bill   PageSize  250
Bill   Duration  20
Fred   Timezone  30
...    ...       ...

假设有数千名用户。我想以某种方式比较Carol,Greg和Bill之间的价值观,但不想包括其他人(Fred等)。

是否可以让表格看起来像这样?

Setting   Carol   Greg    Bill
-------   -----   -----   ----
Timezone  GMT     EST     (null)
PageSize  300     300     250
Duration  (null)  10      20

1 个答案:

答案 0 :(得分:1)

select setting,
       max(case when user = 'Carol' then value else null end) as Carol,
       max(case when user = 'Greg' then value else null end) as Greg,
       max(case when user = 'Bill' then value else null end) as Bill
from your_table
WHERE user IN ('Carol','Greg','Bill')
group by setting