17,086
社区成员
发帖
与我相关
我的任务
分享
select b.TRANS_CODE, nvl(a.TRANS_NAME, b.TRANS_NAME) from t a, t b where a.trans_code(+)=b.trans_code
and a.LANGUAGE_CODE(+) = 'ENG' and b.LANGUAGE_CODE='ZHS'
结果如下:
M1|M1(英文)
M2|M2(英文)
M3|M3(英文)
M4|M4(英文)
M5|M5(中文)
WITH t AS(
SELECT 'M1' TRANS_CODE,'M1(中文)' TRANS_NAME from dual UNION
SELECT 'M1' TRANS_CODE,'M1(英文)' TRANS_NAME from dual UNION
SELECT 'M2' TRANS_CODE,'M2(中文)' TRANS_NAME from dual UNION
SELECT 'M2' TRANS_CODE,'M2(英文)' TRANS_NAME from dual UNION
SELECT 'M3' TRANS_CODE,'M3(中文)' TRANS_NAME from dual UNION
SELECT 'M3' TRANS_CODE,'M3(英文)' TRANS_NAME from dual UNION
SELECT 'M4' TRANS_CODE,'M4(中文)' TRANS_NAME from dual)
SELECT * FROM (
SELECT TRANS_CODE,TRANS_NAME,ROW_NUMber()over(PARTITION BY TRANS_CODE order by TRANS_NAME) AS RN from t )WHERE RN=1
是不是要这么个样子