我在下面有这个代码,但是我一直收到一条错误,说A为A指定了多次A_NUM。
SELECT Alleg,
CASE
WHEN ALLEGCU LIKE '%F%'
OR ALLEGCU LIKE'%A%' THEN 'EF'
ELSE ALLEGCU
END,
ALLEGCU
FROM
(SELECT *, CASE
WHEN ISNUMERIC(SUBSTRING(LTRIM(RTRIM(ALL)), 1,1)) = 0
THEN UPPER(LTRIM(RTRIM(SUBSTRING(ALL, CHARINDEX(' ', ALL)+1, LEN(ALL)
- CHARINDEX(' ', ALL)))))
ELSE ALL
END ALLEGCU
FROM ASSI_O
LEFT OUTER JOIN ALLS
ON ASSI_O.A_NUM = ALLS.A_NUM ) A
答案 0 :(得分:1)
A_NUM
和ASSI_O
中都存在 ALLS
列,并且您在进行加入时正在执行SELECT *
。
仅选择所需的列,并将表名前缀添加到列名
将SELECT *
更改为SELECT ASSI_O.A_NUM as ASSI_NUM, ALLS.A_NUM as ALLS_ANUM
可以解决问题
SELECT ASSI_O.A_NUM as ASSI_NUM, ALLS.A_NUM as ALLS_ANUM ...