gpt4 book ai didi

没有ORDER BY的Where子句中的SQL Row_Number()函数?

转载 作者:太空狗 更新时间:2023-10-30 01:38:11 24 4
gpt4 key购买 nike

我发现了很多关于这个主题的问题和很好的解决方案,但没有一个真正涉及如果数据不以某种特定方式排序时该怎么做。例如,以下查询:

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

编辑:谷歌搜索后,我发现这实际上是不可能的。有人可以为此提出解决方法吗?

最佳答案

以防万一它对其他人有用。我刚从 elsewhere 弄明白了:

WITH MyCte AS 
(
select employee_id,
RowNum = row_number() OVER (ORDER BY (SELECT 0))
from V_EMPLOYEE
ORDER BY Employee_ID
)
SELECT employee_id
FROM MyCte
WHERE RowNum > 0

关于没有ORDER BY的Where子句中的SQL Row_Number()函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com