WITH TEMP(MONEY_TYPE,MONEY) AS
(SELECT MONEY_TYPE,LOCAL_MONEY MONEY
FROM TEST13
WHERE MONEY_TYPE <> '001'
UNION ALL
SELECT MONEY_TYPE,
CASE WHEN MONEY_TYPE ='001'
THEN LOCAL_MONEY ELSE FOREIGN_MONEY
END MONEY
FROM TEST13)
SELECT CASE WHEN MONEY IN(SELECT LOCAL_MONEY
FROM TEST13
WHERE MONEY_TYPE <> '001')
THEN '001'
ELSE MONEY_TYPE END, MONEY
FROM(SELECT * FROM TEMP ORDER BY MONEY_TYPE) TABLE
select 币种, 金额(本币) from xxx where 币种='001' --本币数据
union
select '001' as 币种, 金额(本币) from xxx where 币种<>'001' --非本币数据的本币信息
union
select 币种, 金额(外币) from xxx where 币种<>'001' --非本币数据的外币信息