【问题标题】:what does this mean "order by NULL"这是什么意思“按NULL排序”
【发布时间】:2014-08-19 06:34:25
【问题描述】:

我使用oracle 11g,下面的行序是什么意思?

select f_value,row_number() over (order by null) as id 
from tableName"

【问题讨论】:

    标签: sql oracle11g


    【解决方案1】:

    ROW_NUMBER()OVER() 子句需要 ORDER BY

    使用ORDER BY NULL 是一种解决方法,它满足语法要求,但实际上并没有改变数据的顺序。实际上,这是一个根本不订购的指令。

    注意:有些人(包括我自己)更喜欢使用SELECT 1 而不是SELECT NULL,但效果没有区别。

    底线:不是很好,但它有效。


    提示:TSQL 不允许直接使用 SELECT 1,但您可以使用 (SELECT 1)

    【讨论】:

    • 所以,如果我使用类似 row_number 的东西(按 COLUMN_NAME 排序)将根据给定的列对 row_number 列进行排序。是吗?
    • 是的,当然。您可以在 OVER() 中使用“PARTITION BY”和“ORDER BY” - partition by 类似于 group by - 它控制 row_number() 在 1 处重新开始计数的位置
    猜你喜欢
    • 2013-05-09
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2011-09-04
    相关资源
    最近更新 更多