首页 > 解决方案 > 用 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

标签: sqlsql-server

解决方案


只需使用 where 子句,您可以尝试如下

update T
set C='1234'
where C<>'0000'

推荐阅读