我需要过滤掉具有否定值的行.即我想删除一列匹配的所有行,并且有两行具有否定值.即来自
ID, Val, Details
0, 4, "Details 0 1..."
1, 5, "Details 1 1..."
1, 7, "Details 1 2..."
1, -5, "Details 1 3..."
2, 9, "Details 2 1..."
Run Code Online (Sandbox Code Playgroud)
我想要
ID, Val, Details
0, 4, "Details 0 1..."
2, 9, "Details 2 1..."
Run Code Online (Sandbox Code Playgroud)
因为行1,5 ...和1,-5,...否定将ID标记为无效.我很难找到一个干净的方法来做到这一点.
使用NOT EXISTS验证标识不具有"否定值":
select *
from tablename t
where not exists (select 1 from tablename t1
join tablename t2
on t1.ID = t2.ID and t1.Val = -t2.Val
where t1.ID = t.ID)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |