SQL对特定ID计数的帮助

时间:2018-07-05 15:41:23

标签: sql

您知道如何仅在表中显示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

4 个答案:

答案 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');