gpt4 book ai didi

sql - 在sql server中使用case语句更新多列

转载 作者:行者123 更新时间:2023-12-03 02:59:38 25 4
gpt4 key购买 nike

我想使用 case 语句更新表,查询如下...

select case(@columnname) when 'name1' then 
begin
update table
set
pay1=pay1* 100
pay2=pay2*20
pay3=pay3* 100
end
when 'name2' then
begin
update table
set
pay2=pay2*20
pay3=pay3* 100
end

when 'name3' then
begin
update table
set
pay3=pay3* 100
end
end

你能告诉我们使用 case 语句完成查询的正确逻辑吗

最佳答案

您必须交换语法。 case 语句将应用于您想要更新的每个值...

UPDATE table SET
pay1 = CASE WHEN @columnname IN('name1') THEN pay1 * 100 ELSE pay1 END,
pay2 = CASE WHEN @columnname IN('name1', 'name2') THEN pay2 * 20 ELSE pay2 END,
pay3 = CASE WHEN @columnname IN('name1', 'name2', 'name3') THEN pay3 * 100 ELSE pay3 END

看起来你真正想要的是一个 if 语句......

IF @columnname = 'name1'
UPDATE table SET pay1 = pay1 * 100, pay2=pay2*20, pay3=pay3* 100

ELSE IF @ColumnName = 'name2'
UPDATE table SET pay2 = pay2 * 20, pay3 = pay3 * 100

ELSE IF @ColumnName = 'name3'
UPDATE table SET pay3 = pay3 * 100

希望有帮助

关于sql - 在sql server中使用case语句更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27716671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com