簡體   English   中英

使用case語句更新語句SQL

[英]Update statement SQL with case statement

如何更新以下條件的值

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'

您不需要使用case表達式使用where子句來代替:

UPDATE t
     SET C = '1234'
WHERE C IS NOT NULL OR C <> '0000';

只是

UPDATE T SET C='1234' where c <> '0000'

由於無效比較不成立,因此可以使用

SQL>UPDATE T SET C='1234' where c <> '0000';

                  4 rows updated

SQL>select * from t;
C
==========
0000
1234
1234
1234
1234
-

                  6 rows found

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM