空值排序(oracle/sqlserver)

oracle认为 null 最大。

升序排列,默认情况下,null值排后面。

降序排序,默认情况下,null值排前面。

改变空值办法:

(1)用nvl函数或decode函数将null转换为一特定值

替换null: nvl(arg,value)

(2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似):

order by (case mycol when null then‘北京漂客’else mycol end)

(3)使用nulls first 或者nulls last 语法。

null值排序的语法

nulls first :将null排在最前面。如:

select *

from mytb

order by mycol nulls first

null last :将null排在最后面。如:

select *

from mytb

order by mycol nulls last

sqlserver 认为 null 最小。

升序排列:null 值默认排在最前。

要想排后面,则:order by case when col is null then 1 else 0 end ,col

降序排列:null 值默认排在最后。

要想排在前面,则:order   by case when col is null then 0 else 1 end , col desc

替换null:isnull(arg,value)

时间: 2024-10-13 01:52:49

空值排序(oracle/sqlserver)的相关文章

数据库空值排序

在开发数据库程序的过程中,经常会碰到排序时遇到空值问题,有时希望空值排在前面,有时希望排在后面. 本文简单记录下oracle和mysql的空值排序问题. 样本: oracle空值排序: oracle提供了专门处理方法nulls first(last),使用起来很方便 空值在前面 select * from tb_test order by lv nulls first 空值在最后 select * from tb_test order by lv nulls last mysql中的空值排序:

BI测试工具之跨数据库数据对比,支持oracle,sqlserver

应用场景: 本周在进行SIT,我帮助仅有的一个测试妹妹对部分表进行数据质量验证,第一步需要做的就是比对source与stage表的table definition 与 数据内容的一致性. 本项目使用的是oracle作为DW,source是oracle,sqlserver和xls. 没有权限建立database link, 测试们常用的方法是比对总行数,然后如果数据集太大的话,则抽样比对,导出数据到xls,然后使用beyondcompare进行比对. 如果值出现不同,则需要查找出哪些行的值不同,最

hibernate4中oracle,sqlserver,mysql数据库的sql方言配置(SQL Dialects)

hibernate4中oracle,mysql,sqlserver数据库的sql方言配置(SQL Dialects) 数据库类型 Hibernate sql方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL 8.1 org.hibernate.dialect.Po

Linux下通过JDBC连接Oracle,SqlServer和PostgreSQL

今天正好需要统计三个网站栏目信息更新情况,而这三个网站的后台采用了不同的数据库管理系统.初步想法是通过建立一个小的Tomcat webapp,进而通过JDBC访问这三个后台数据库,并根据返回的数据生成报表. 1 开发环境 数据库管理系统:一个是SqlServer 2000,另一个是Oracle 9i,再一个是PostgreSQL9.1 Tomcat执行平台:CentOSx64 + JDK7.0x64 (全64位环境) 2 JDBC驱动的选择 2.1 Oracle9i Oracle官方提供了ojd

oracle&&Sqlserver获取表名列名主键及数据类型

SQlserver获得列名,列类型,列类型长度,scale,prec等数据类型(syscolumns,systypes,sysobjects均为视图) select a.name as colname, b.name as typename,a.length as length,a.scale as scale,a.prec as prec from syscolumns a,systypes b ,sysobjects c where a.xusertype=b.xusertype and a

关于Oracle数据库中SQL空值排序的问题

在Oracle中进行查询排序时,如果排序字段里面有空值的情况下,排序结果可能会达不到自己想要的结果. 如 select * from tableTest order by VISITS desc 将原来的sql语句改写为:select * from tableTest order by VISITS desc nulls last,"nulls last"控制将空值记录放在后面,当然,你也可以用"nulls first"将控制记录放在前面. oracle 空值处理,

Oracle基础学习之空值排序

新建表: 1 -- Create table 2 create table EMP 3 ( 4 empno NUMBER(4), 5 ename VARCHAR2(10), 6 job VARCHAR2(9), 7 mgr NUMBER(4), 8 hiredate DATE, 9 sal NUMBER(7,2), 10 comm NUMBER(7,2), 11 deptno NUMBER(2) 12 ) 13 tablespace USERS 14 pctfree 10 15 initrans

oracle 空值排序,排在最前面或者最后面

1,排在最前面用order by name nulls first; eg:select t.name,t.code from table t where t.code!='1' order by name nulls first; 2,排在最后面order by name nulls last; eg:select t.name,t.code from table t where t.code!='1' order by name nulls last;

mysql 等 null 空值排序

[sqlserver]: sqlserver 认为 null 最小. 升序排列:null 值默认排在最前. 要想排后面,则:order by case when col is null then 1 else 0 end ,col 降序排列:null 值默认排在最后. 要想排在前面,则:order   by case when col is null then 0 else 1 end , col desc [oracle]: oracle认为 null 最大. 升序排列,默认情况下,null值