Я нашел кучу вопросов по этой теме с хорошими решениями, но ни один из них на самом деле не справляется с тем, что делать, если данные не должны быть упорядочены определенным образом. Например, следующий запрос:
WITH MyCte AS
(
select employee_id,
RowNum = row_number() OVER ( order by employee_id )
from V_EMPLOYEE
ORDER BY Employee_ID
)
SELECT employee_id
FROM MyCte
WHERE RowNum > 0
работает хорошо, если данные должны быть заказаны сотрудником_id. Но что, если мои данные не имеют какого-либо определенного порядка, но сами номера строк действуют как идентификатор? Моя цель - написать такой запрос (с помощью функции Row_Number()
без предложения ORDER BY
):
WITH MyCte AS
(
select employee_id,
RowNum = row_number() OVER ( <PRESERVE ORIGINAL ORDER FROM DB> )
from V_EMPLOYEE
ORDER BY Employee_ID
)
SELECT employee_id
FROM MyCte
WHERE RowNum > 0
РЕДАКТИРОВАТЬ: После Google, я понял, что это действительно невозможно. Может ли кто-нибудь предложить обходное решение для этого?