[英]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.