我有一张员工表
empname code1 code2
kiran aa bng
manju yh yh
anu yu01 yuo1
现在我需要做一个像这样的选择语句
SELECT case when (employee.code1)=''
then
mappingcode.Code
else
then
employee.code2
end as Code
FROM
employee where bic1= 'kiran'
但是我收到了错误,
在我的项目中,我有一个类似的问题,只是在expm中我已经定义了问题
我需要做什么在这里首先检查code1如果null将其值设置为其他表,如果没有将code2值赋给code1
CODE1 - > code2产生
我收到错误,因为多部分标识符employee.code2 希望我的问题很清楚
任何人都可以帮助我语法如何实现它。
谢谢
王子
答案 0 :(得分:1)
如果您只想要选择,我认为这会对您有所帮助:
SELECT empname, CASE
WHEN employee.code1 IS NULL THEN mappingcode.code
ELSE
employee.code2 end as Code1
FROM employee INNER JOIN mappingcode ON employee.empname = mappingcode.empname
如果您想要更新,请尝试以下方法:
Update employee set code1 = x.code from (SELECT empname, CASE
WHEN employee.code1 IS NULL THEN mappingcode.code
ELSE
employee.code2 end as code
FROM employee INNER JOIN mappingcode ON employee.empname = mappingcode.empname) x
inner join employee on employee.empname = x.empname
在不了解您的架构的情况下,我认为这正是您所寻找的。 p>
感谢Andriy指出我在帖子中有相同的选择并且有点错误:)