ID A B C A001 003 A001 008 B001 002 B001 006 变成这样的 ID A B C A001 008 A001 008 delete B001 006 B001 006 delete
这效果? SELECT * FROM (select id,A,'delete' as B,C FROM T WHERE A IS NOT NULL UNION ALL SELECT NULL,NULL,A C FROM T WHERE A IS NOT NULL) ORDER BY ID,A NULLS FIRST
UPDATE table_name a SET a.column_c=(SELECT b.column_a FROM table_name b WHERE b.row_id=456) WHERE a.row_id='123'; COMMIT; UPDATE table_name a SET a.column_b='' WHERE a.row_id='456'; COMMIT; 这个意思?
ID A B C A001 003 A001 008 B001 002 B001 006 变成这样的 ID A B C A001 008 A001 008 delete B001 006 B001 006 delete ID A B C A001 003 A001 008 B001 002 B001 006 变成这样的 ID A B C A001 008 A001 008 delete B001 006 B001 006 delete ID A B C A001 003 A001 008 B001 002 B001 006 变成这样的 ID A B C A001 008 A001 008 delete B001 006 B001 006 delete UPDATE TEST T SET T.C = (SELECT A FROM TEST T2 WHERE T2.ID = T.ID AND T2.A IS NOT NULL) WHERE T.A IS NULL; UPDATE TEST T SET T.B = 'DELETE' WHERE EXISTS (SELECT 1 FROM TEST T2 WHERE T2.C = T.A AND T2.ID = T.ID AND T2.A IS NULL) AND T.A IS NOT NULL; COMMIT;
不好意思 还有 一列 ID ID是一样的
123和456是固定值?
ID A B C
A001 003
A001 008
B001 002
B001 006
变成这样的 ID A B C
A001 008
A001 008 delete
B001 006
B001 006 delete
SELECT * FROM
(select id,A,'delete' as B,C
FROM T
WHERE A IS NOT NULL
UNION ALL
SELECT NULL,NULL,A C
FROM T
WHERE A IS NOT NULL)
ORDER BY ID,A NULLS FIRST
WHERE a.row_id='123';
COMMIT;
UPDATE table_name a SET a.column_b='' WHERE a.row_id='456';
COMMIT;
这个意思?
ID A B C
A001 003
A001 008
B001 002
B001 006
变成这样的 ID A B C
A001 008
A001 008 delete
B001 006
B001 006 delete
ID A B C
A001 003
A001 008
B001 002
B001 006
变成这样的 ID A B C
A001 008
A001 008 delete
B001 006
B001 006 delete
ID A B C
A001 003
A001 008
B001 002
B001 006
变成这样的 ID A B C
A001 008
A001 008 delete
B001 006
B001 006 delete
UPDATE TEST T
SET T.C =
(SELECT A
FROM TEST T2
WHERE T2.ID = T.ID
AND T2.A IS NOT NULL)
WHERE T.A IS NULL;
UPDATE TEST T
SET T.B = 'DELETE'
WHERE EXISTS (SELECT 1
FROM TEST T2
WHERE T2.C = T.A
AND T2.ID = T.ID
AND T2.A IS NULL)
AND T.A IS NOT NULL;
COMMIT;