34,591
社区成员
发帖
与我相关
我的任务
分享
---------------------------------
-- Author: liangCK 小梁
---------------------------------
--> 生成测试数据: @T
DECLARE @T TABLE (sn INT,ts1 VARCHAR(4),ts2 VARCHAR(6),ts3 VARCHAR(8),ts4 VARCHAR(10))
INSERT INTO @T
SELECT 1,'你好','很好','不错','不错啊' UNION ALL
SELECT 2,'他们','他们啊','他们是不','他们是不啊' UNION ALL
SELECT 3,'看到','什么','不可以','不可以' UNION ALL
SELECT 4,null,null,null,null UNION ALL
SELECT 5,null,null,null,null
--SQL查询如下:
UPDATE A SET
ts1=B.ts1,
ts2=B.ts2,
ts3=B.ts3,
ts4=B.ts4
FROM @T AS A
CROSS JOIN @T AS B
WHERE A.sn=4
AND B.ts1='你好'
SELECT * FROM @T;
/*
sn ts1 ts2 ts3 ts4
----------- ---- ------ -------- ----------
1 你好 很好 不错 不错啊
2 他们 他们啊 他们是不 他们是不啊
3 看到 什么 不可以 不可以
4 你好 很好 不错 不错啊
5 NULL NULL NULL NULL
(5 行受影响)
*/
UPDATE A SET
ts2=B.ts2,
ts3=B.ts3,
ts4=B.ts4
FROM tb AS A
CROSS JOIN tb AS B
WHERE A.sn=4
AND B.ts1='你好'