首页 > 解决方案 > 使用 distinct 时查询选择行

问题描述

我想做以下事情。

假设数据看起来像这样

Number  letter  
1        b      
1        c      
1        a       
2        d       
2        b        
2        c
3        a
3        b
3        c 

我想按以下方式过滤数据列号以获取所有不同的数字,然后过滤掉字母 d

输出应该如下

Number letter 
1     
2 
2       d
3

这可能吗?

我可以在两张表中执行此操作,但我想知道是否可以将其合并为一张

谢谢你

克里斯

标签: sqloracle11g

解决方案


这应该这样做:

select distinct number, case when letter = 'd' then 'd' end letter from mytable

在 Oracle 中,您可以使用decode来缩短查询:

select distinct number, decode(letter, 'd', 'd') letter from mytable

推荐阅读