我在表名col1下有两列col2table。理想情况下,表中的数据应如下所示:

 col1 | col2
  A     null
  null   B
  null   A
  C      null

如果存在一行,其中两列都是“cc>”,或者如果两列都有一个值,则数据将出现错误。例如,如果有一行
 col1| col2
  A     B


col1 | col2
 null   null

我可以使用如下查询来计算每列中的空数
null
select count(*) from table where col1 IS NULL
但是,只知道select count(*) from table where col2 IS NULL s的计数并添加它们,并不能告诉我表中实际存在null的位置。是否有一个查询,我可以写,以测试是否只有一个空在每一行?

最佳答案

要查找有错误的行数,可以使用AND条件检查两列是否同时null,或是否同时不为空:

SELECT COUNT(*) AS rows_with_error
FROM your_table
WHERE (col1 IS NULL AND col2 IS NULL) OR
      (col1 IS NOT NULL AND col2 IS NOT NULL)

07-24 17:35
查看更多