我有下表
ID PCode Pname
----------------------------------
1 A1 Book
2 A2 Oxford Dictionary
3 A3 Book
预期产出:
ID PCode Pname
---------------------------------------
1 A1 Book_A1
2 A2 Oxford Dictionary
3 A3 Book_A3
如果不同Pname
的{{1}}相同,则结果必须为Pcode
Pname_Pcode
和Book_A1
。
请提供对我有帮助的解决方案。
由于
答案 0 :(得分:0)
您可以使用条件再次加入同一个表,以仅获取记录having
重复项。然后在case
select t1.id, t1.pcode, case when t2.pname is not null
then t2.pname + '_' + t1.pcode
else t1.pname
end as pname
from your_table t1
left join
(
select pname
from your_table
group by pname
having count(*) > 1
) t2 on t1.pname = t2.pname