chr*_*sto 2 sql sql-server-2008
我有以下问题:
我有桌子:
TEST_TABLE
x_Id|y_Id
---------
2| 7
2| 8
3| 7
4| 7
5| 8
Run Code Online (Sandbox Code Playgroud)
如果x_Id有y_Id(7)和y_Id(8),我想删除记录.如果y_Id = 8且y_Id(7)在唯一x_Id中不存在,则将y_Id更新为7.
x_Id和y_Id是复合键.
结果示例:
TEST_TABLE
x_Id|y_Id
---------
2| 7
3| 7
4| 7
5| 7
Run Code Online (Sandbox Code Playgroud)
删除重复项(x_Id同时存在y_Id的7和8)并更新所有剩余的y_Id,其中y_Id = 8
DELETE FROM TEST_TABLE t1 WHERE y_Id=8 AND EXISTS (SELECT * FROM TEST_TABLE WHERE x_Id=t1.x_Id AND y_Id=7)
UPDATE TEST_TABLE SET y_Id=7 WHERE y_Id=8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3598 次 |
| 最近记录: |