-1

最大値レコード以外のすべてのレコードを取得したい。そのためのクエリを提案してください。

たとえば、(フィルターにAVGフィールドを使用しています)

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

クエリは、1 番目と 3 番目のレコードのみを返す必要があります。

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 に答える