Как отобразить нулевое значение, когда запись присутствует более одного раза в Oracle SQL
У меня есть набор результатов, как следующие:
1001 abcdefg
1001 dghfkdk
1001 lkjkjkl
1002 kkjhjkh
1003 iuoiuoi
1003 kjljklj
Я хочу отобразить нулевое значение в столбце 1, когда оно более одного раза.
Например:
1001 abcdefg
null dghfkdk
null lkjkjkl
1002 kkjhjkh
1003 iuoiuoi
null kjljklj
Может ли кто-нибудь помочь мне в этом? Заранее спасибо.
1 ответ
Решение
Вы можете использовать row_number:
select case when ranking = 1
then id
else null
end as id
, column_txt
from
(
select id
, column_txt
, row_number() over (partition by id order by column_txt) as ranking
from table
)t