查询替换值

时间:2018-05-03 14:19:49

标签: sql oracle

我有桌子并且有如下数据

    Ac1        ac2       name   ind
    123        223       john     y
    123        000       john     y
    123        001       john     N
    123        002       roy      N
    223        000       roy      N
    223        001       roy      Y
    223        002       james    y
    234        001       james    y
    234        000       james    y

我有这个表我想显示ac2是000以外的任何其他值我需要显示ind1新列作为000值的ind

    Ac1        ac2       name   ind     ind1
    123        223       john     y      Y
    123        000       john     y      Y
    123        001       john     N      Y
    123        002       roy      N      N
    223        000       roy      N      N
    223        001       roy      Y      N
    223        002       james    y      Y
    234        001       james    y      Y
    234        000       james    y      Y

我的表总是有000帐户,现在如果我想通过名字查看,那么我没有得到预期的结果

         select ac1, ac2, ind,case when ac2 = 0 then ind end as ind1 from   table;

1 个答案:

答案 0 :(得分:0)

select a.ac1, a.ac2, a.name, a.ind, b.ind ind1 
from table a join (select distinct name, ind from table where ac2='000')b on a.name=b.name