Я нашел кучу вопросов на эту тему с хорошими решениями, но ни один из них на самом деле не касается того, что делать, если данные не должны быть упорядочены каким-либо конкретным способом. Например, следующий запрос:
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
хорошо работает, если данные упорядочены по employee_id. Но что, если мои данные не имеют определенного порядка, но сами номера строк действуют как 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
РЕДАКТИРОВАТЬ: После Googling, я понял, что это на самом деле не возможно. Кто-нибудь может предложить обходной путь для этого?