寻找一个优雅的方式来解决这个...SQL和ALL操作
DECLARE @ZIP INT
SET @ZIP = 55555
IF @ZIP = ALL(SELECT ZIP FROM PEOPLE WHERE PERSONTYPE = 1)
PRINT 'All people of type 1 have the same zip!'
ELSE
PRINT 'Not All people of type 1 have the same zip!'
的问题是,如果(选择ZIP从不同人的PERSONTYPE = 1)返回任何记录,那么上面的if计算为真。我正在寻找一种方法,当ALL的子查询没有返回任何记录时,将其评估为false。
我目前的解决方案:
DECLARE @ZIP INT
SET @ZIP = 55555
DECLARE @ALLZIPS TABLE (INT ZIP)
INSERT INTO @ALLZIPS
SELECT ZIP FROM PEOPLE WHERE PERSONTYPE = 1
IF EXISTS(SELECT TOP 1 * FROM @ALLZIPS) AND (@ZIP = ALL (SELECT ZIP FROM @ALLZIPS))
PRINT 'All people of type 1 have the same zip!'
ELSE
PRINT 'Not All people of type 1 have the same zip!'
MS SQL服务器(T-SQL标准) – MooseCoder 2010-08-10 21:47:54