我想获取除最大值记录之外的所有记录。您能否建议对此进行查询。
例如,(我正在使用 AVG 字段进行过滤)
SNO Name AVG
1 AAA 85
2 BBB 90
3 CCC 75
查询只需要返回第一条和第三条记录。
我想获取除最大值记录之外的所有记录。您能否建议对此进行查询。
例如,(我正在使用 AVG 字段进行过滤)
SNO Name AVG
1 AAA 85
2 BBB 90
3 CCC 75
查询只需要返回第一条和第三条记录。
使用以下查询:
select * from tab where avg<(select max(avg) from tab);
您可以使用如下排名函数DENSE_RANK
:
WITH CTE AS(
SELECT SNO, Name, AVG,
RN = DENSE_RANK() OVER (ORDER BY AVG DESC)
FROM dbo.TableName
)
SELECT * FROM CTE WHERE RN > 1
(如果您使用的是 SQL-Server >= 2005)
尝试这个
SELECT SNO, Name, AVG
FROM TableName
WHERE AVG NOT IN (SELECT MAX(AVG)
FROM TableName )
select * from Sample where avg not in (select max(avg) from sample);
我认为这应该做