sql中when case的多列
当我对工资栏使用sql中when case的多列,sql,Sql,当我对工资栏使用=时,我发现语法错误 如果要向薪资中添加奖金并显示结果,请删除案例语句中的salary= SELECT ... CASE WHEN BONUS = 400 then SALARY = SALARY+400 END From Emp; 试试这个 SELECT ... CASE WHEN BONUS = 400 then SALARY+400 END as SALARY From Emp; 或 如果您想更新新的薪资,请使用 SELECT
=
时,我发现语法错误 如果要向薪资中添加奖金并显示结果,请删除案例语句中的salary=
SELECT ...
CASE
WHEN BONUS = 400 then SALARY = SALARY+400
END
From Emp;
试试这个
SELECT ...
CASE WHEN BONUS = 400 then SALARY+400 END as SALARY
From Emp;
或
如果您想更新新的薪资,请使用
SELECT
CASE
WHEN BONUS = '400'
then SALARY +400
END
From Emp;
在select语句中,CASE表达式的工作方式与函数非常相似 在您的情况下,它将返回一个值,而不是两列
如果你需要:返回两列,CulnN1(奖金)和Calpn2(薪水)和薪水取决于奖金,你可以考虑这样的事情。
UPDATE Emp
SET SALARY = SALARY + CASE WHEN BONUS =400 THEN 400 ELSE 0 END;
您将有一个结果集,其中有两列“奖金”和“薪资”,其中薪资值取决于“奖金”列的值。实际上,我的要求是使用“=”作为运算符。@chaitu。。方法用示例结果和表结构解释预期结果我的要求是当column1='xyz'然后column2='abc'@chaitu检查更新的代码实际上我的要求是使用“=”to运算符。@chaitu-这里的
=
运算符有什么用?这里我给出了一个小例子。我的要求是当column1='xyz'然后column2='abc'(这是我的要求)@chaitu-仍然不清楚。添加有问题的示例数据和预期结果。是否要在select查询的输出中显示薪资+400,还是要更新表中的记录?
UPDATE Emp
SET SALARY = SALARY + CASE WHEN BONUS =400 THEN 400 ELSE 0 END;
SELECT
-- Column1
BONUS, -- Column BONUS from Emp table
-- Column2
CASE
WHEN BONUS = 400 THEN SALARY+400
ELSE SALARY
END AS SALARY -- 'SALARY' alias is assigned to the resultant value of the CASE (to make this a named Column)
FROM Emp