--如果有结果,说明存在缺失编号SELECT'存在缺失编号'AS gap
FROM SeqTbl
HAVINGCOUNT(*)<>MAX(seq);
--查询缺失编号的最小值SELECTMIN(seq+1)AS gap
FROM SeqTbl
WHERE(seq+1)NOTIN(SELECT seq FROM SeqTbl);
2. 用HAVING子句进行子查询:求众数
Graduate(毕业生表)
name(名字)
income(收入)
桑普僧
400000
麦克
30000
怀特
20000
阿诺德
2000
史密斯
20000
劳伦斯
15000
哈德逊
15000
肯特
10000
贝克
10000
斯科特
10000
--求众数的SQL语句:使用谓词SELECT income,COUNT(*)AS cnt
FROM Graduate
GROUPBY income
HAVINGCOUNT(*)>=ALL(SELECTCOUNT(*)FROM Graduate
GROUPBY income);
--ALL谓词用于NULL或空集时会出现问题,可以用极值函数来代替--用于NULL时永远不会返回结果,用于空集返回原表所有记录SELECT income,COUNT(*)AS cnt
FROM Graduate
GROUPBY income
HAVINGCOUNT(*)>=(SELECTMAX(cnt)FROM(SELECTCOUNT(*)AS cnt
FROM Graduate
GROUPBY income) TMP );