当列=然后删除

k2fxgqgv  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(310)

我正在尝试创建一个查询,在该查询中,如果一行满足条件,它将从表中删除。
伪代码:if indexi =500和 user =290045,然后从表1中删除,其中 indexi =85和 user = 290045

user   | line_no | header | indexi |
-------+---------+--------+--------+
290045 |    0    |   0    |   500  |
290045 |    1    |   0    |    85  |
733    |    0    |   0    |    33  |

预期结果:

user   | line_no | header | indexi |
-------+---------+--------+--------+
290045 |    0    |   0    |   500  |
733    |    0    |   0    |   33   |
ipakzgxi

ipakzgxi1#

我想你想要 exists :

delete t
from mytable t
where 
    t.indexi = 85 
    and t.usr = 290045
    and exists (select 1 from mytable t1 where t1.usr = t.usr and t1.indexi = 500)

旁注: usr 是sql server中的保留字,因此不是一个很好的列名选择。

相关问题