SQL 更新查询

发布于 2024-09-26 01:36:42 字数 314 浏览 0 评论 0原文

我可以在 UPDATE 子句中使用多个 WHEN 条件来更新单个列吗?

我想更新具有 ID 和 NAME 列的表 TABLE:

下面的查询正确吗?

UPDATE TABLE 
   SET id = CASE id
              WHEN id IN (2, 3, 4) THEN 1
              WHEN id= 5 THEN 8
              WHEN id IN(9, 7) THEN 6
 WHERE name = 'abc'

Can i use several WHEN conditions in UPDATE clause to update a single column.

I want to update table TABLE having columns ID and NAME:

Is below query correct?

UPDATE TABLE 
   SET id = CASE id
              WHEN id IN (2, 3, 4) THEN 1
              WHEN id= 5 THEN 8
              WHEN id IN(9, 7) THEN 6
 WHERE name = 'abc'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

在你怀里撒娇 2024-10-03 01:36:42

是的,这是允许的,但请删除 CASE 之后的 ID。并且,您需要END您的案例。

UPDATE TABLE 
SET ID = CASE  
    when ID in (2,3,4) 
        then 1 
    when ID = 5 
        then 8 
    when ID in (9,7) 
        then 6 
END
where NAME = 'abc' 

CASE 有两种替代语法。如上所述,另一个是您想要将单个值与其他值进行比较的地方,如下所示:

UPDATE TABLE 
SET ID = CASE ID 
    when 2
        then 1 
    when 5 
        then 8 
    when 7
        then 6 
END
where NAME = 'abc' 

Yes, that is allowed, but remove ID after CASE. And, you need to END your case.

UPDATE TABLE 
SET ID = CASE  
    when ID in (2,3,4) 
        then 1 
    when ID = 5 
        then 8 
    when ID in (9,7) 
        then 6 
END
where NAME = 'abc' 

There are two alternate syntaxes for CASE. As above, and the other is where you want to compare a single value against others, like this:

UPDATE TABLE 
SET ID = CASE ID 
    when 2
        then 1 
    when 5 
        then 8 
    when 7
        then 6 
END
where NAME = 'abc' 
帝王念 2024-10-03 01:36:42

案例有两个版本:

版本 1:

 Case Id
     When 2 Then 1
     When 3 Then 1
     When 4 Then 1
     When 5 Then 8
     When 7 Then 6
     When 9 Then 6
     End

版本 2:

 Case    
   When Id in (2,3,4) Then 1   
   When Id = 5        Then 8   
   When Id in (9,7)   Then 6   
 End

以上两者是等效的

Case comes in two versions:

version 1:

 Case Id
     When 2 Then 1
     When 3 Then 1
     When 4 Then 1
     When 5 Then 8
     When 7 Then 6
     When 9 Then 6
     End

version 2:

 Case    
   When Id in (2,3,4) Then 1   
   When Id = 5        Then 8   
   When Id in (9,7)   Then 6   
 End

Both of above are equivilent

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文