sql - 用 case 语句更新语句 SQL
问题描述
如何更新以下条件的值
CREATE TABLE T
(
C VARCHAR(10)
);
INSERT INTO T
VALUES ('0000'),
('123456789'),
('A'),
(''),
(' '),
(NULL);
我需要保留 NULL 值或具有 0000 的值,并将剩余的值更新为 1234。
预期输出如下:
0000
1234
1234
1234
1234
NULL
我已经尝试过以下语句,但有没有更好的方法来做到这一点?
UPDATE T SET C=CASE WHEN C IS NULL then null
when C='0000' then '0000' else '1234' END
解决方案
只需使用 where 子句,您可以尝试如下
update T
set C='1234'
where C<>'0000'
推荐阅读
- flutter - Flutter FireStore,通过文档键获取文档
- google-sheets - 2 个电子表格,添加/删除行时 IMPORTRANGE 更新引用
- mongodb - 如何使用量角器和茉莉花连接到 Mongo DB
- java - 获取包 javax.ws.rs 不存在错误
- php - 搜索返回太不相关的结果
- eclipse - 如何处理 Maven 项目目录之外的 .proto 文件(无用的 Eclipse 警告)
- grails - 在 CMD 上运行 Grails 3 应用程序时出错
- ruby-on-rails - 如何在 Graphql 解析器中传递 :current_user
- javascript - 使用反应从数组中删除元素
- excel - 可以将 Excel 数据栏格式化为具有自动对比颜色吗?