sql 语句系列(行与列处理)[八百章之第一章]

Posted 你永远想象不到,一个光鲜亮丽的Application,有多么

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句系列(行与列处理)[八百章之第一章]相关的知识,希望对你有一定的参考价值。

排序时对null进行处理

比如说:
select * from EMP order by COMM

我需要对红框部分进行desc处理,也就是从大到小排列。

解析:

重点是如何让null独立出去。

select * from 

(select *,case when COMM is null then 0 else 1 end as COMMISNULL from EMP )
x
order by COMMISNULL,COMM desc

解法:单独列出一列把null独立出去。

注意null的判断是 is而不是等于号

依据条件逻辑动态调整排序项

比如说:

select * from EMP

我希望的是:如果job 是SALESMAN的话,那么按照COMM排序,否则SAL 排序

解法:

在上面一个例子中,我们排行是通过排除某些行,对另外一个行进行处理。
而我们这个例子是针对列的,如果是针对列的那么更为简单。

select *
from EMP
order by case when JOB=\'SALESMAN\' then COMM else SAL end

以上是关于sql 语句系列(行与列处理)[八百章之第一章]的主要内容,如果未能解决你的问题,请参考以下文章

sql 语句系列(闰年)[八百章之第十九章]

sql 语句系列(用魔法打败魔法)[八百章之第十章]

sql 语句系列(列举非索引外键)[八百章之第九章]

sql 语句系列(加减乘除与平均)[八百章之第十四章]

sql 语句系列(众数中位数与百分比)[八百章之第十五章]

sql 语句系列(null 值处理)[八百章之第二章]