SQL:需要选择至少有3列不等于特定值的行
我需要选择至少有三列不等于“未知”的行 示例数据集:SQL:需要选择至少有3列不等于特定值的行,sql,postgresql,Sql,Postgresql,我需要选择至少有三列不等于“未知”的行 示例数据集: id condition_A condition_B condition_C condition_D Condition_E 1 Unknown Positive Negative Negative Unknown 2 Unknown Unknown Negative
id condition_A condition_B condition_C condition_D Condition_E
1 Unknown Positive Negative Negative Unknown
2 Unknown Unknown Negative Negative Unknown
3 Positive Positive Negative Negative Unknown
在本例中,我希望查询返回第1行和第3行 我认为这样做可以:
select * from tablename
where 3 <=
(condition_A <> 'Unknown')::int +
(condition_B <> 'Unknown')::int +
(condition_C <> 'Unknown')::int +
(condition_D <> 'Unknown')::int +
(condition_E <> 'Unknown')::int
我认为这样可以做到:
select * from tablename
where 3 <=
(condition_A <> 'Unknown')::int +
(condition_B <> 'Unknown')::int +
(condition_C <> 'Unknown')::int +
(condition_D <> 'Unknown')::int +
(condition_E <> 'Unknown')::int
到目前为止,您尝试了什么?示例数据很棒,但也指定了预期结果。提示:
case
表达式。您需要在每三个列组合中使用case when…
语句来检查“未知”值您到目前为止尝试了什么?示例数据很棒,但也要指定预期的结果。提示:case
表达式。您需要对每三个列组合使用case when…
语句来检查“未知”值