2009-10-20 2 views
0

На самом деле, у меня есть задача найти сотрудников на основе ранга зарплаты.Dense_Rank() альтернатива в sql server 2000? (На основе набора)

Итак, я использовал Dense_Rank() и получил ответ.

Изначально мне сказали, чтобы решить в SQL SERVER 2005.

Позже они изменили требование и говорит о том, что запрос должен выполняться в SQL SERVER 2000 также.

Я решил, что используя цикл while.

Но они говорят, что они примут решение, используя подход SET BASED.

Как это сделать?

Заранее спасибо

+0

Можете ли вы предоставить некоторые подробности - каковы столбцы (включая тип данных) таблицы «РАБОТНИКИ»? Каково было ваше решение, которое использовало цикл WHILE? –

ответ

0

Вы можете попробовать что-то вроде этого:

SELECT * , 
    (SELECT COUNT(C1) 
     FROM  T1 
     WHERE  P1.C1>= T.C 
    ) AS Rnk 
FROM T 
ORDER BY C DESC;