带语句条件sql server的select语句

时间:2011-03-02 13:43:47

标签: sql-server-2005

我有一张员工表

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 希望我的问题很清楚

任何人都可以帮助我语法如何实现它。

谢谢

王子

1 个答案:

答案 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

在不了解您的架构的情况下,我认为这正是您所寻找的。

感谢Andriy指出我在帖子中有相同的选择并且有点错误:)