如何更新以下条件的值
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
答案 0 :(得分:2)
只使用where子句,您可以尝试如下
update T
set C='1234'
where C<>'0000'
答案 1 :(得分:2)
您无需使用case
表达式,而使用where
子句:
UPDATE t
SET C = '1234'
WHERE C IS NOT NULL OR C <> '0000';
答案 2 :(得分:1)
简单
UPDATE T SET C='1234' where c <> '0000'
将起作用,因为空比较不是 true 。
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