`
zhangdaiscott
  • 浏览: 454438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

Oracle 排序中使用nulls first 或者nulls last 语法

 
阅读更多
-原理
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
<wbr></wbr>
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
--实例
1.order by col<wbr> (asc/desc)<wbr> NULLS LAST 不管col如何排序 col的null(空值)总是在最后</wbr></wbr>
SQL> WITH tab AS(
<wbr> 2<wbr> SELECT 1 id,'小明' NAME,'开发中心' dept FROM dual<br><wbr> 3<wbr> UNION ALL<br><wbr> 4<wbr> SELECT 2,'小张','开发中心' FROM dual<br><wbr> 5<wbr> UNION ALL<br><wbr> 6<wbr> SELECT 3,'小王','开发中心' FROM dual<br><wbr> 7<wbr> UNION ALL<br><wbr> 8<wbr> SELECT 4,'小丽','研发中心' FROM dual<br><wbr> 9<wbr> )<br><wbr>10<wbr> SELECT *<br><wbr>11<wbr><wbr><wbr> FROM (<br><wbr>12<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT ID, NAME, DEPT FROM tab<br><wbr>13<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> UNION ALL<br><wbr>14<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT<br><wbr>15<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> )<br><wbr>16<wbr><wbr> ORDER BY DEPT, ID NULLS LAST<br><wbr>17<wbr> /</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<wbr><wbr><wbr><wbr> DEPT<br> ---------- -------- --------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 1 小明<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 2 小张<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 3 小王<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 开发中心 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 4 小丽<wbr><wbr><wbr><wbr> 研发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 研发中心 研发中心</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
已选择6行。
2.order by col<wbr> (asc/desc)<wbr> NULLS first 不管col如何排序 col的null(空值) 总是在最前</wbr></wbr>
SQL> edi
已写入 file afiedt.buf
<wbr> 1<wbr> WITH tab AS(<br><wbr> 2<wbr> SELECT 1 id,'小明' NAME,'开发中心' dept FROM dual<br><wbr> 3<wbr> UNION ALL<br><wbr> 4<wbr> SELECT 2,'小张','开发中心' FROM dual<br><wbr> 5<wbr> UNION ALL<br><wbr> 6<wbr> SELECT 3,'小王','开发中心' FROM dual<br><wbr> 7<wbr> UNION ALL<br><wbr> 8<wbr> SELECT 4,'小丽','研发中心' FROM dual<br><wbr> 9<wbr> )<br><wbr>10<wbr> SELECT *<br><wbr>11<wbr><wbr><wbr> FROM (<br><wbr>12<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT ID, NAME, DEPT FROM tab<br><wbr>13<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> UNION ALL<br><wbr>14<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT<br><wbr>15<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> )<br><wbr>16*<wbr> ORDER BY DEPT, ID NULLS first<br> SQL&gt; /</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> ID NAME<wbr><wbr><wbr><wbr> DEPT<br> ---------- -------- --------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 开发中心 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 1 小明<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 2 小张<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 3 小王<wbr><wbr><wbr><wbr> 开发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 研发中心 研发中心<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 4 小丽<wbr><wbr><wbr><wbr> 研发中心</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
已选择6行。
目的:
本来的目的是把部门相同的人员归在一起
SQL> edi
已写入 file afiedt.buf
<wbr> 1<wbr> WITH tab AS(<br><wbr> 2<wbr> SELECT 1 id,'小明' NAME,'开发中心' dept FROM dual<br><wbr> 3<wbr> UNION ALL<br><wbr> 4<wbr> SELECT 2,'小张','开发中心' FROM dual<br><wbr> 5<wbr> UNION ALL<br><wbr> 6<wbr> SELECT 3,'小王','开发中心' FROM dual<br><wbr> 7<wbr> UNION ALL<br><wbr> 8<wbr> SELECT 4,'小丽','研发中心' FROM dual<br><wbr> 9<wbr> )<br><wbr>10<wbr> SELECT id||name<br><wbr>11<wbr><wbr><wbr> FROM (<br><wbr>12<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT ID, NAME, DEPT FROM tab<br><wbr>13<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> UNION ALL<br><wbr>14<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT<br><wbr>15<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> )<br><wbr>16*<wbr> ORDER BY DEPT, ID NULLS last<br> SQL&gt; /</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
ID||NAME
------------------------------------------------
1小明
2小张
3小王
开发中心
4小丽
研发中心
已选择6行。
分享到:
评论

相关推荐

    oracle处理的类型 oracle行排序

    首先,我们需要理解在Oracle中进行数据排序的基本语法,即SQL的ORDER BY子句。当我们在查询语句(如SELECT)中添加ORDER BY,Oracle会根据指定的列或表达式对结果集进行升序(ASC,默认)或降序(DESC)排序。例如:...

    oracle使用order by排序null值如何处理

    适用情况: oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面 关键字:Nulls First;Nulls Last 默认情况:null 默认为最大值(即:asc 升序&lt;小–&gt;大&gt;,null值排在最后...

    oralce 中 排序问题

    此外,Oracle还提供了一些高级排序功能,如`NULLS FIRST`和`NULLS LAST`,它们用于控制NULL值的排序位置。默认情况下,NULL值在非NULL值之前,但你可以用这些选项改变这个行为: ```sql SELECT * FROM employees ...

    Oracle分析函数

    FUNCTION_NAME(&lt;参数&gt;,…) OVER (表达式,…&gt; 表达式 &lt;ASC DESC&gt; &lt;NULLS FIRST NULLS LAST&gt;&gt; 子句&gt;) 其中,PARTITION BY 子句用于将数据分区,ORDER BY 子句用于排序数据,而 WINDOWING 子句用于指定窗口的范围。 ...

    Oracle常识 Oracle基本知识

    在`ORDER BY` 语句中,`NULLS FIRST` 或 `NULLS LAST` 可以控制 `NULL` 值的排序位置。 7. **NVL函数**: - **NVL** 函数用于处理 `NULL` 值,当表达式结果为 `NULL` 时,NVL 将返回第二个参数的值,例如将 `...

    oracle 分析函数总结

    Order子句则用于定义行的排序,可以包含ASC或DESC关键字,以及NULLS FIRST或NULLS LAST选项来控制NULL值的位置。Window子句更为复杂,它定义了分析函数的工作范围,可以基于行数(ROWS BETWEEN)或值范围(RANGE ...

    ORACLE基本操作

    在查询结果中,可以通过 `NULLS FIRST` 或 `NULLS LAST` 来控制 null 值的位置。 **示例**: ```sql SELECT * FROM zl_cbqc ORDER BY cb_ld NULLS FIRST; // cb_ld 是空值的始终放到最前 SELECT * FROM zl_cbqc ...

    oracle最全函数大全

    FUNCTION_NAME(&lt;参数&gt;,...) OVER (表达式,...&gt;表达式 | DESC&gt;&lt;NULLS FIRST | NULLS LAST&gt;子句&gt;) ``` - **PARTITION BY**子句:将数据分成多个分区,在每个分区内独立计算函数。 - **ORDER BY**子句:指定如何对分区...

    oracle函数大全分析函数,聚合函数,转换函数,日期型函数,字符型函数,数值型函数,其他函数.docx

    分析函数的语法为:FUNCTION_NAME(&lt;参数&gt;,…) OVER (表达式,…&gt; 表达式 &lt;ASC DESC&gt; &lt;NULLS FIRST NULLS LAST&gt;&gt; 子句&gt;)。 1. 值域窗(RANGE WINDOW) 值域窗是一种基于值域的窗口函数,可以对数据进行聚合和分析。...

    Oracle从入门到精通

    =`, `IN`, `NOT IN`, `BETWEEN`, `IS NULL`, `IS NOT NULL`, `NULLS LAST`, `NULLS FIRST` - **全局函数**: - `NVL(字段名, 指定值)`:如果字段为 `NULL`,则返回指定值;否则返回字段本身。 - `DECODE(字段名, 值...

    oracle函数

    4. `ORDER BY`:定义在每个分区内的行排序方式,包括升序(ASC)、降序(DESC)以及空值处理(NULLS FIRST/NULLS LAST)。 5. `WINDOWING CLAUSE`:定义一个固定或动态的数据窗口,分析函数将在这个窗口内计算值。 常见的...

Global site tag (gtag.js) - Google Analytics