-1

我想获取除最大值记录之外的所有记录。您能否建议对此进行查询。

例如,(我正在使用 AVG 字段进行过滤)

SNO   Name     AVG
1     AAA       85
2     BBB       90
3     CCC       75

查询只需要返回第一条和第三条记录。

4

4 回答 4

5

使用以下查询:

select * from tab where avg<(select max(avg) from tab);
于 2013-07-15T06:38:06.230 回答
3

您可以使用如下排名函数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)

演示

于 2013-07-15T06:38:40.090 回答
0

尝试这个

   SELECT SNO, Name, AVG 
    FROM TableName 
    WHERE AVG NOT IN (SELECT  MAX(AVG) 
                      FROM TableName )
于 2013-07-15T06:44:07.543 回答
0
select * from Sample where avg not in (select max(avg) from sample);

我认为这应该做

于 2013-07-15T06:49:25.187 回答