钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读809635
首页 SQL 正文内容

sql更新语句使用case

钟逸 SQL 2025-06-09 09:58:50 2

在SQL语句中,CASE是一种有用的结构,可根据条件执行不同的更新操作。这个结构可以用来更新表中的一个或多个列,并支持复杂条件和多个选项。

CASE 语句的语法

CASE语句的基本语法如下:

UPDATE table_name

SET column_name = CASE

WHEN condition1 THEN value1

WHEN condition2 THEN value2

...

ELSE default_value

END

* **table_name:**要更新的表名。

* **column_name:**要更新的列名。

* **condition1、condition2、...:**要检查的条件。

* **value1、value2、...:**如果条件为真时要设置的值。

* **default_value:**如果所有条件都不满足时要设置的值(可选)。

使用 case 更新多个列

使用CASE语句,还可以同时更新多个列。语法如下:

UPDATE table_name

SET column_name1 = CASE

WHEN condition1 THEN value1

...

ELSE default_value

END,

column_name2 = CASE

WHEN condition2 THEN value2

...

ELSE default_value

END

...

示例

假设有一个名为“customers”的表,其中包含以下列:

* customer_id:客户 ID

* name:客户姓名

* email:客户电子邮件地址

* is_active:客户是否处于活动状态

要根据客户是否处于活动状态更新客户的电子邮件地址,可以使用以下SQL查询:

UPDATE customers

SET email = CASE

WHEN is_active = 1 THEN 'active@example.com'

WHEN is_active = 0 THEN 'inactive@example.com'

ELSE NULL -- 如果客户状态未知,则将电子邮件地址设置为 NULL

END

通过使用CASE语句,可以根据动态条件灵活地更新表中的数据。这在需要根据多个条件执行复杂更新时非常有用。

文章目录
    搜索