例如,我想要将数字2作为目标
这应该返回积极的迹象:
ID Status
123 2
432 2
531 2
123 2
Run Code Online (Sandbox Code Playgroud)
这应该返回负面指示:
ID Status
123 1
432 3
531 2
123 2
Run Code Online (Sandbox Code Playgroud)
这应该返回负面指示:
ID Status
123 1
432 1
531 1
123 1
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*ith 14
EXISTS应优先使用,COUNT以便在找到第一个非匹配行后立即返回.
SELECT CASE
WHEN NOT EXISTS(SELECT *
FROM your_table
WHERE status <> 2) THEN 'Y'
ELSE 'N'
END AS your_result
Run Code Online (Sandbox Code Playgroud)
您没有陈述RDBMS.您可能需要追加FROM DUAL到上面的依赖于味道的末尾.
select (select count(distinct status) from T) = 1
Run Code Online (Sandbox Code Playgroud)
将返回 1 或 0(即 true 或 false),具体取决于所有行的 Status 值是否相同。如果您必须处理状态中的 NULL 值:
select exists
( select status from T where status <> 2 or status is null)
as StatusContainsOtherThanTwoOrNullValue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28269 次 |
| 最近记录: |