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 是不合法的
分享到:
相关推荐
值得注意的是,在 `GROUP BY` 查询中,`SELECT` 子句通常只能包含分组列和聚合函数,除非使用了 `HAVING` 子句进行过滤。 `GROUP BY` 和 `ORDER BY` 的一个关键区别在于作用范围。`ORDER BY` 是对整个查询结果集...
值得注意的是,这种情况下Mybatis不会抛出任何错误信息,甚至在日志中显示的SQL语句也看不出异常之处,这使得问题排查变得较为困难。 #### 解决方案 针对上述问题,可以采用`${}`表达式替换原来的`#{}`来解决问题...
值得注意的是,`ORDER BY` 和 `IN` 结合使用时,性能可能会受到影响,尤其是在处理大量数据时。因为MySQL需要对所有满足条件的行执行排序,这可能会消耗更多的时间和资源。因此,优化索引和限制返回的数据量是非常...
值得注意的是,优化查询性能并不是一个一劳永逸的过程,每次遇到查询慢的问题都需要具体分析。在实际应用中,可以通过以下步骤进一步优化: 1. **分析查询计划**:使用`EXPLAIN PLAN`或`SHOW PLAN ALL`等命令查看...
值得注意的是,`ORDER BY`语句不会考虑字段的自然顺序,而是严格按照指定的字段和排序方式执行。例如,`ORDER BY code AND name DESC`是无效的,因为它不遵循正确的语法。正确的方式是使用逗号分隔每个字段,如`...
值得注意的是,`GROUP BY` 后的列可以使用 `HAVING` 进行条件判断,但不能使用 `WHERE`;相反,`WHERE` 可以操作 `GROUP BY` 前的所有列,但不能操作聚合函数。在嵌套使用分组函数时,通常先执行 `WHERE` 过滤数据,...
值得注意的是,`ThenBy` 和 `ThenByDescending` 可以连续使用,以创建复杂的排序规则。然而,`OrderBy` 操作不支持基于匿名类型或自定义类型的排序,只能对基本类型进行排序。例如,试图对包含多个属性的对象进行...
此外,值得注意的是,Oracle 12c引入了一种新的分页查询方式——`FETCH FIRST n ROWS ONLY`,这使得处理"Top N"问题变得更加直观和高效: ```sql SELECT * FROM emp ORDER BY sal DESC FETCH FIRST 3 ROWS ONLY; ``...
同时,值得注意的是,不同的数据库系统可能对引号有不同的要求,有些系统可能接受双引号作为文本值的分隔符。 接下来,我们讨论AND和OR运算符。这两个逻辑运算符用于组合多个条件,以便更精确地筛选数据。AND运算符...
值得注意的是,当你在 `PARTITION BY` 后使用聚合函数,比如 `MIN()` 或 `MAX()`,这个函数会在每个分区的行上逐行计算,而不是对整个分组求最小值或最大值。这就是为什么在 `SQL2` 中,两个 SQL 查询虽然只是对 `a....
然而,值得注意的是,不是所有的DBMS都允许按别名排序,例如Microsoft Access,这时需要使用实际的字段名或计算。一个例子是:`SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING ...
分享有趣且值得注意的数据工程内容 - 即博客、播客、存储库、书籍、视频和 MOOC。 这主要是由我们的研究员伊戈尔·巴里诺夫 (Igor Barinov) 策划并为他们策划的,并受到我们其中一位研究员的启发。 如果您有想法或...
值得注意的是,分析函数不能用在WHERE、GROUP BY或HAVING子句中,它们只能应用于SELECT或ORDER BY。此外,某些分析函数支持DISTINCT参数,这限制了OVER子句中的其他选项,比如ORDER BY。 在使用分析函数时,理解...
然而,值得注意的是,某些特定的配置更改可能仅影响新创建的查询窗口,而不会实时影响已经运行的查询。 使用DB查询分析器3.02时,可以快速构建SQL语句,例如,你可以轻松地创建SELECT语句来查询数据库中的特定信息...
值得注意的是,如果有多条记录具有相同的最小销售额或利润,查询将返回所有这些记录。在实际应用中,可能需要额外的逻辑来处理这种情况,例如,根据其他字段(如日期、库存量等)进一步筛选。 在Delphi中,我们还...
然而,值得注意的是,由于Hive的执行模型是批处理,对于实时或低延迟的查询需求,可能需要结合其他工具,如Impala或Spark SQL。 总的来说,Apache Web日志Hive实验数据提供了一个理想的平台,让我们能够深入理解...
值得注意的是,这个示例假设所有单词的长度都至少为1。如果可能有空字符串或者长度为0的单词,需要在比较器函数中添加适当的处理逻辑。 在实际开发中,可能还会遇到其他复杂情况,比如处理多音节的单词或带有特殊...
值得注意的是,`GROUP BY`和聚合函数的组合使用应当谨慎,确保每个非聚合列都在`GROUP BY`子句中出现,否则可能会导致不期望的结果。在MySQL中,旧版本(5.7及以下)允许“隐藏”的非聚合列,但在新的严格模式下,...
值得注意的是,每种方法都有其适用场景和局限性,在实际应用过程中需要根据具体情况灵活选择。此外,良好的数据库设计和合理的查询逻辑也是优化 SQL 性能的重要因素。希望本文能够帮助你在日常开发中更高效地利用 ...
此外,值得注意的是,虽然存储过程提供了便利,但在处理大量数据时,性能优化是至关重要的。优化策略可能包括创建覆盖索引、减少排序列的数量,以及避免在`ORDER BY`子句中使用计算表达式或不稳定的函数。 综上所述...