与SQL Server 2000中的两列表不同的一列

时间:2012-11-21 19:42:47

标签: sql sql-server-2000

我正在尝试获取一个包含两列的表的唯一列表...

snapshot

ITEM   DISP
-----------------
903996 , 1600
903996 , 3D13
123045 , 1D23
450300 , 3D14
450300 , 3DAD

我需要的输出如下

ITEM     DISP
-----------------
903996 , 1600
123045 , 1D23
450300 , 3D14

我知道在SQL Server 2005中,ROW_NUMBER对于这类问题非常有用,因为我在SQL Server 2000中工作并且此功能不存在。

这是我对SQL Server 2005的想法:

    Select  [ITEM],[DISP]
FROM (
SELECT 
       [ITEM]
      ,[DISP]
      ,ROW_NUMBER() OVER (PARTITION BY [ITEM] ORDER BY [ITEM]) as RowNumber
  FROM [TABLE]
) WHERE RowNumber =1 

如何在SQL Server 2000中执行此操作?

谢谢

1 个答案:

答案 0 :(得分:0)

您应该能够MIN()使用GROUP BY

select item, min(disp)
from snapshot
group by item

请参阅SQL fiddle with Demo

结果:

|   ITEM | DISP |
-----------------
| 123045 | 1D23 |
| 450300 | 3D14 |
| 903996 | 1600 |