34,591
社区成员
发帖
与我相关
我的任务
分享
--CASE語句即可,符合條件的更新,不符合條件的等於原值。
UPDATE TB
SET F2=(CASE WHEN F1=1 THEN 'XX' ELSE F2 END),
F3=(CASE WHEN F1=2 THEN 'YY' ELSE F3 END),
F4=(CASE WHEN F1=3 THEN 'ZZ' ELSE F4 END)
update tb set F2=case when F1=1 then 'xxx' else F2 end,
F3=case when F1=2 then 'xxx' else F3 end,
F4=case when F1=3 then 'xxx' else F4 end,
UPDATE tb
SET F2=CASE WHEN F1=1 THEN 待更新的值 ELSE F2 END,
F3=CASE WHEN F1=2 THEN 待更新的值 ELSE F3 END,
F4=CASE WHEN F1=3 THEN 待更新的值 ELSE F4 END
更新什么??
--> liangCK小梁 于2008-10-21
--> 生成测试数据: #T
IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
CREATE TABLE #T (F1 INT,F2 INT,F3 INT,F4 INT)
INSERT INTO #T
SELECT 1,null,null,null UNION ALL
SELECT 2,null,null,null UNION ALL
SELECT 3,null,null,null
--SQL查询如下:
UPDATE #T
SET F2=CASE WHEN F1=1 THEN F1 END,
F3=CASE WHEN F1=2 THEN F1 END,
F4=CASE WHEN F1=3 THEN F1 END
SELECT * FROM #T;
/*
F1 F2 F3 F4
----------- ----------- ----------- -----------
1 1 NULL NULL
2 NULL 2 NULL
3 NULL NULL 3
(3 行受影响)
*/