`
qianshangding
  • 浏览: 127922 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Order by值得注意的问题

阅读更多

1、ORDER BY 中关于NULL的处理

缺省处理,Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。

当然,你也可以使用nulls first 或者nulls last 语法来控制NULL的位置。
Nulls first和nulls last是Oracle Order by支持的语法
如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
使用语法如下:
--将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last

2、几种排序的写法
单列升序:select<column_name> from <table_name> order by <column_name>; (默认升序,即使不写ASC)

单列降序:select <column_name> from <table_name> order by <column_name> desc;
多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>;
多 列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc;
多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc;

3、今天看到的新写法

SQL> select * from tb;

    BLOGID BLOGCLASS
---------- ------------------------------
        1 人生
        2 学习
        3 工作
        5 朋友

SQL> select * from tb order by decode(blogid,3,1,2), blogid;

    BLOGID BLOGCLASS
---------- ------------------------------
        3 工作
        1 人生
        2 学习
        5 朋友

我所说的就是上面红色的那句话。实现的功能就是不管怎样,BLOGID为3的值必须排在第一位,其他的记录按照BLOGID升序排序。

 

4、Order By 语句不能与Sequence.nextval同时使用

     select seq.nextval, id from db order by id 是不合法的

分享到:
评论

相关推荐

    mysql中order by与group by的区别

    值得注意的是,在 `GROUP BY` 查询中,`SELECT` 子句通常只能包含分组列和聚合函数,除非使用了 `HAVING` 子句进行过滤。 `GROUP BY` 和 `ORDER BY` 的一个关键区别在于作用范围。`ORDER BY` 是对整个查询结果集...

    Mybatis排序无效问题解决.doc

    值得注意的是,这种情况下Mybatis不会抛出任何错误信息,甚至在日志中显示的SQL语句也看不出异常之处,这使得问题排查变得较为困难。 #### 解决方案 针对上述问题,可以采用`${}`表达式替换原来的`#{}`来解决问题...

    详谈mysql order by in 的字符顺序(推荐)

    值得注意的是,`ORDER BY` 和 `IN` 结合使用时,性能可能会受到影响,尤其是在处理大量数据时。因为MySQL需要对所有满足条件的行执行排序,这可能会消耗更多的时间和资源。因此,优化索引和限制返回的数据量是非常...

    SQL order by ID desc/asc加一个排序的字段解决查询慢问题

    值得注意的是,优化查询性能并不是一个一劳永逸的过程,每次遇到查询慢的问题都需要具体分析。在实际应用中,可以通过以下步骤进一步优化: 1. **分析查询计划**:使用`EXPLAIN PLAN`或`SHOW PLAN ALL`等命令查看...

    MySQL中Order By多字段排序规则代码示例

    值得注意的是,`ORDER BY`语句不会考虑字段的自然顺序,而是严格按照指定的字段和排序方式执行。例如,`ORDER BY code AND name DESC`是无效的,因为它不遵循正确的语法。正确的方式是使用逗号分隔每个字段,如`...

    group by,having,order by的用法详解

    值得注意的是,`GROUP BY` 后的列可以使用 `HAVING` 进行条件判断,但不能使用 `WHERE`;相反,`WHERE` 可以操作 `GROUP BY` 前的所有列,但不能操作聚合函数。在嵌套使用分组函数时,通常先执行 `WHERE` 过滤数据,...

    LINQTOSQL高级查询介绍[参照].pdf

    值得注意的是,`ThenBy` 和 `ThenByDescending` 可以连续使用,以创建复杂的排序规则。然而,`OrderBy` 操作不支持基于匿名类型或自定义类型的排序,只能对基本类型进行排序。例如,试图对包含多个属性的对象进行...

    Oracle 的top问题

    此外,值得注意的是,Oracle 12c引入了一种新的分页查询方式——`FETCH FIRST n ROWS ONLY`,这使得处理"Top N"问题变得更加直观和高效: ```sql SELECT * FROM emp ORDER BY sal DESC FETCH FIRST 3 ROWS ONLY; ``...

    【SQL基础(二)】【SQL WHERE 子句+引号的使用+SQL AND & OR 运算符+SQL ORDER BY 子句】

    同时,值得注意的是,不同的数据库系统可能对引号有不同的要求,有些系统可能接受双引号作为文本值的分隔符。 接下来,我们讨论AND和OR运算符。这两个逻辑运算符用于组合多个条件,以便更精确地筛选数据。AND运算符...

    详解partition by和group by对比

    值得注意的是,当你在 `PARTITION BY` 后使用聚合函数,比如 `MIN()` 或 `MAX()`,这个函数会在每个分区的行上逐行计算,而不是对整个分组求最小值或最大值。这就是为什么在 `SQL2` 中,两个 SQL 查询虽然只是对 `a....

    SQL 必知必会 10 - 分组数据1

    然而,值得注意的是,不是所有的DBMS都允许按别名排序,例如Microsoft Access,这时需要使用实际的字段名或计算。一个例子是:`SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING ...

    leetcode2-Awesome-Data-Engineering-Content:分享有趣和值得注意的数据工程内容

    分享有趣且值得注意的数据工程内容 - 即博客、播客、存储库、书籍、视频和 MOOC。 这主要是由我们的研究员伊戈尔·巴里诺夫 (Igor Barinov) 策划并为他们策划的,并受到我们其中一位研究员的启发。 如果您有想法或...

    oracle 分析函数总结

    值得注意的是,分析函数不能用在WHERE、GROUP BY或HAVING子句中,它们只能应用于SELECT或ORDER BY。此外,某些分析函数支持DISTINCT参数,这限制了OVER子句中的其他选项,比如ORDER BY。 在使用分析函数时,理解...

    The ninth skills of SQL design by DB Query Analyzer

    然而,值得注意的是,某些特定的配置更改可能仅影响新创建的查询窗口,而不会实时影响已经运行的查询。 使用DB查询分析器3.02时,可以快速构建SQL语句,例如,你可以轻松地创建SELECT语句来查询数据库中的特定信息...

    Delphi通过聚集函数MIN求销售额、利润最少的商品..rar

    值得注意的是,如果有多条记录具有相同的最小销售额或利润,查询将返回所有这些记录。在实际应用中,可能需要额外的逻辑来处理这种情况,例如,根据其他字段(如日期、库存量等)进一步筛选。 在Delphi中,我们还...

    Apache Web日志Hive实验数据

    然而,值得注意的是,由于Hive的执行模型是批处理,对于实时或低延迟的查询需求,可能需要结合其他工具,如Impala或Spark SQL。 总的来说,Apache Web日志Hive实验数据提供了一个理想的平台,让我们能够深入理解...

    12.10_ 根据首字母排序单词的雏形示例

    值得注意的是,这个示例假设所有单词的长度都至少为1。如果可能有空字符串或者长度为0的单词,需要在比较器函数中添加适当的处理逻辑。 在实际开发中,可能还会遇到其他复杂情况,比如处理多音节的单词或带有特殊...

    使用mysql的disctinct group by查询不重复记录

    值得注意的是,`GROUP BY`和聚合函数的组合使用应当谨慎,确保每个非聚合列都在`GROUP BY`子句中出现,否则可能会导致不期望的结果。在MySQL中,旧版本(5.7及以下)允许“隐藏”的非聚合列,但在新的严格模式下,...

    五种提高 SQL 性能的方法

    值得注意的是,每种方法都有其适用场景和局限性,在实际应用过程中需要根据具体情况灵活选择。此外,良好的数据库设计和合理的查询逻辑也是优化 SQL 性能的重要因素。希望本文能够帮助你在日常开发中更高效地利用 ...

    sqlserver分页的存储过程

    此外,值得注意的是,虽然存储过程提供了便利,但在处理大量数据时,性能优化是至关重要的。优化策略可能包括创建覆盖索引、减少排序列的数量,以及避免在`ORDER BY`子句中使用计算表达式或不稳定的函数。 综上所述...

Global site tag (gtag.js) - Google Analytics