您知道如何仅在表中显示col3
不是'X'的相同ID的行吗?
例如,在下表中,它应仅显示ID
2(因为所有col2
均为null
)
ID | col1 | col2 | col3
---+------+------+-----
1 | 0 | 0 | X
1 | D | C | null
1 | D | C | null
2 | 0 | 0 | null
2 | D | C | null
2 | D | C | null
它应适用于所有ID
,行号为ID
,并且只有相同的ID
,且所有行都具有null
。
答案 0 :(得分:0)
大多数DBMS支持3种有价值的逻辑-真,假和未定义。未定义NULL <> 3,因为NULL是未知值。您需要显式处理NULL。
SELECT *
FROM Your_Table
WHERE col3 <> X
OR col3 IS NULL;
答案 1 :(得分:0)
select * from table
where (col1 = col2) and (col3 <> 'X')
答案 2 :(得分:0)
如果您希望获取ID中第3列中的ID至少具有一个X的其他记录,则为该记录:
SELECT Y.*
FROM Your_Table Y
WHERE Y.ID NOT IN (SELECT X.ID FROM YOUR_TABLE X WHERE X.ID=Y.ID AND X.COL3='X')
答案 3 :(得分:0)
使用窗口函数或not exists
:
select t.*
from t
where not exists (select 1 from t t2 where t2.id = t.id and t2.col3 = 'X');