Sql 使用distinct时选择行的查询

Sql 使用distinct时选择行的查询,sql,oracle11g,Sql,Oracle11g,我想做以下几点 假设数据看起来像这样 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 这

我想做以下几点

假设数据看起来像这样

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
这可能吗

我可以在两个表中完成这项工作,但我想知道是否可以将其合并为一个表

多谢各位

克里斯

这应该可以做到:

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

联合所有人怎么样

select distinct number, null as letter
from t
union all
select number, 'd'
from t
where letter = 'd';

我还没有试过第一个,但是第二个非常好,谢谢!我会看看这个语法,我是初学者,所以每一个都是有用的谢谢