达梦update能套select(case when)嘛
时间: 2023-11-12 10:05:10 浏览: 67
达梦数据库中的UPDATE语句是可以嵌套SELECT语句和CASE WHEN语句的。具体实现方式如下:
```
UPDATE table_name
SET column_name = (SELECT CASE WHEN condition THEN value1 ELSE value2 END
FROM another_table
WHERE condition2)
WHERE condition3;
```
其中,table_name表示要更新的表名,column_name表示要更新的列名,condition3表示更新的条件。在SET子句中,可以使用子查询和CASE WHEN语句来设置要更新的值。在子查询中,可以通过条件语句和连接操作获取需要的数据。
相关问题
update case when用法
UPDATE CASE WHEN用于更新表中的数据,在更新时可以根据条件来判断需要更新哪些数据,类似于SELECT CASE WHEN的用法。
语法如下:
```
UPDATE 表名 SET 列名 = CASE
WHEN 条件1 THEN 新值1
WHEN 条件2 THEN 新值2
ELSE 列名
END
WHERE 条件;
```
其中,CASE语句中的WHEN条件可以有多个,ELSE表示如果满足以上条件均不成立时,更新的值保持不变。
示例:将表中所有性别为男性的用户身高增加5cm,女性的身高增加3cm。
```
UPDATE users SET height = CASE
WHEN gender = 'male' THEN height + 5
WHEN gender = 'female' THEN height + 3
ELSE height
END
WHERE 1 = 1; -- 1=1表示更新所有记录
```
上述示例中,CASE语句判断了性别为男的用户和性别为女的用户,更新他们的身高。如果用户是其他性别,则保持身高不变。根据WHERE条件,更新了表中所有记录的身高。
mysql update case when 性能
MySQL的UPDATE语句中也可以使用CASE WHEN语句,可以根据不同的条件更新不同的值。和SELECT语句中的CASE WHEN类似,UPDATE语句中的CASE WHEN语句也可能会影响性能。
在使用UPDATE语句时,可以考虑以下几个方面来提高性能:
1. 尽量减少使用复杂的CASE WHEN语句,因为复杂的逻辑会增加服务器计算的负担。
2. 如果需要更新的数据集比较大,可以先将需要更新的数据集筛选出来,然后再进行更新。这样可以减少不必要的计算,提高更新效率。
3. 对于需要反复更新的数据集,可以使用临时表来缓存数据。这样可以减少重复计算,提高更新效率。
4. 对于需要更新的表,可以考虑使用索引来提高更新效率。如果表中的数据量比较大,可以使用分区表来提高更新效率。
总之,使用UPDATE语句时,需要根据具体情况进行权衡,尽量减少对更新性能的影响。同时,可以使用一些优化技巧来提高更新性能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)