开发者

Check if value in column for all rows is exactly value

For example, I w开发者_JAVA技巧ant follow the number 2 as target

This should return positive indication:

ID       Status
123      2
432      2
531      2
123      2

This should return negative indication:

ID       Status
123      1
432      3
531      2
123      2

This should return negative indication:

ID       Status
123      1
432      1
531      1
123      1

Thanks


EXISTS should be used in preference to COUNT so it can return as soon as the first non matching row is found.

SELECT CASE
         WHEN NOT EXISTS(SELECT *
                         FROM   your_table
                         WHERE  status <> 2) THEN 'Y'
         ELSE 'N'
       END AS your_result  

You don't state RDBMS. You might need to append FROM DUAL onto the end of the above dependant on flavour.


select count(*) where Status != 2


select (select count(distinct status) from T)  = 1 

will return 1 or 0 (i.e. true or false) depending on whether all of the rows have the same value in Status or not. If you have to deal with NULL values in status:

select exists 
( select status from T where status <> 2 or status is null)
as StatusContainsOtherThanTwoOrNullValue
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜