SQL Server order by语句学习回顾
主要学习:
- SELECT ENAME,JOB,SAL
- FROM EMP
- WHERE DEPTNO=10
- ORDER BY SAL DESC;
- SELECT ENAME,JOB,SAL
- FROM EMP
- WHERE DEPTNO=10
ORDER BY 3 DESC;
ORDER BY子句中的3,与SELECT列表中的第3列对应,也就是SAL。{注意:不推荐使用列的编号进行排序}
具体实例2---按多个字段排序
- SELECT DEPTNO ,
- ENAME ,
- JOB ,
- SAL ,
- COMM
- FROM EMP
- WHERE DEPTNO<=20
- ORDER BY SAL ASC,
- COMM DESC
可以使用SELECT列表中没有的列来排序,但是在ORDER BY子句中必须显示地给出排序的列名。
如果在查询中使用GROUP BY或DISTINCT,则不能按照SELECT列表中没有的列来排序。
具体实例3---按字串排序
在ORDER BY子句中使用SUBSTRING函数:
- SELECT DEPTNO ,
- ENAME ,
- JOB
- FROM EMP
- ORDER BY SUBSTRING(ENAME, LEN(ENAME),1) DESC ,
- SUBSTRING(JOB,LEN(JOB),1) ASC;
- 也可以写成:ORDER BY LEFT(ENAME,1) DESC ,
- LEFT(JOB,1) ASC;
使用DBMS的子串函数,可以很容易地按字符串的一部分来排序。要按照字符串的最后两个字符排序,首先要找到字符串的末尾(就是字符串的长度),并减去2。起始位置就是字符串中的倒数第2个字符。然后,获取从起始位置开始的所有字符。SQL Server在SUBSTRING中需要第3个参数来指定要获取的字符数。
具体实例4---处理排序空值
在EMP中根据COMM排序结果,但是这个字段可以有空值,需要指定是否将空值排在最前,或者将空值排在最后。
- SELECT ENAME, SAL, COMM
- FROM EMP
- ORDER BY COMM;
结果:
具体实例4---处理排序空值
- SELECT ENAME,
- SAL,
- COMM
- FROM (SELECT ENAME, SAL, COMM,
- CASE WHEN COMM IS NULL THEN 0
- ELSE 1 END AS IS_NULL FROM EMP) X
- ORDER BY IS_NULL DESC, COMM;
- SELECT ENAME,
- SAL,
- COMM
- FROM (SELECT ENAME, SAL, COMM,
- CASE WHEN COMM IS NULL THEN 0
- ELSE 1 END AS IS_NULL FROM EMP) X
- ORDER BY IS_NULL DESC,
- COMM DESC;
- SELECT ENAME,
- SAL,
- COMM
- FROM (SELECT ENAME, SAL, COMM,
- CASE WHEN COMM IS NULL THEN 0
- ELSE 1 END AS IS_NULL FROM EMP) X
- ORDER BY IS_NULL, COMM;
- SELECT ENAME,
- SAL,
- COMM
- FROM (SELECT ENAME, SAL, COMM,
- CASE WHEN COMM IS NULL THEN 0
- ELSE 1 END AS IS_NULL FROM EMP) X
- ORDER BY IS_NULL,
- COMM DESC;
空值相关:
- SELECT ENAME,
- SAL,
- COMM,
- CASE WHEN COMM IS NULL THEN 0
- ELSE 1
- END AS IS_NULL
- FROM EMP;
根据IS_NULL的值,可以很容易地将NULL排在最前面或最后面,而不影响COMM如何排序
具体实例5---根据数据项的键排序
可以使用CASE表达式来动态改变如何对结果排序。传递给ORDER BY的值类似这样
- SELECT ENAME,
- SAL,
- JOB,
- COMM,
- CASE WHEN JOB='SALESMAN' THEN COMM
- ELSE SAL
- END AS ORDERED
- FROM EMP
- ORDER BY ORDERED;
SQL Server order by语句学习回顾的更多相关文章
- SQL server 查看什么语句在使用临时表
SQL server 查询那些语句在使用临时表 最近在日常的性能测试工作中发现,数据库端的IO读写比较大,有规律的2-8M的波动,数据库的版本为 SQL server 2008 sp3. 这些IO操作 ...
- 【转载】SQL Server - 使用 Merge 语句实现表数据之间的对比同步
原文地址:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT ...
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ...
- SQL Server ---T-SQl基本语句
T-SQL 是 SQL-Server 的结构化查询语言. 基本数据操作语言. 基础语句 先创建表 我后面的列子都是用的这一个表,列名啥的 就大概看看吧~~ 纯粹为了学习语句,语法~~所以先创建个表吧~ ...
- SQL Server 基本SELECT语句
1.SELECT 和 FROM 语句 SELECT表示执行的是查询,接着需要更知道从哪边查询数据,FROM就是限制读取的数据在哪一个表或哪几个表中,这样就构成了一个基本语句. SELECT * FRO ...
- SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间.执行时间.做了多少次磁盘读等. 如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信 ...
- SQL Server中CURD语句的锁流程分析
我只在数据库选项已开启“行版本控制的已提交读”(READ_COMMITTED_SNAPSHOT为ON)中进行了观察. 因此只适用于这种环境的数据库. 该类数据库支持四种不同事务隔离级别,下面分别观察数 ...
- SQL Server与Oracle对比学习:权限管理(一)
http://blog.csdn.net/weiwenhp/article/details/8093661 我们发现我们现在的生活中到处是涉及到密码,你要记各种各样的密码.比如银行卡,邮件,QQ,微博 ...
- SQL Server与Oracle对比学习:表的管理和组织
http://blog.csdn.net/weiwenhp/article/details/8088979 我们知道数据库,顾名思义.最重要的东东就是管理数据,而数据在系统中主要是保存在表(table ...
随机推荐
- VBA 表操作1
VBA 新建表.批量建表 例1 创建一个工作簿 注意 .name 与 .range ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- PHP基础 mysqli的事务处理
1: <?php 2: // PHP 的mysqli的事务处理 3: //======================================================== 4: ...
- padding/margin/border 理解
- HTMLDOM中三种元素节点、属性节点、文本节点的测试案例
HTML dom中常用的三种节点分别是元素节点.属性节点.文本节点. 具体指的内容可参考下图: 以下为测试用例: <!DOCTYPE html> <html> <head ...
- webservice测试实例
webservice测试实例(LR8.1) 接口声明:这个接口是sina的短信服务接口,我只是用来做脚本学习使用,不会对其产生压力:希望读者也只是用来进行录制学习,而不是产生压力. 接口文档:http ...
- python 中文编码问题
1.文件首#coding=utf-8 作用:为了把文件内容编码python所识别的utf-8,若不指定编码格式,则会出现以下错误: 2. 文件储存指定编码为utf-8 作用:将文件编码成utf-8.如 ...
- 解决IE6不支持position:fixed的bug
/*完整代码 */ /* 除IE6浏览器的通用方法 */ .ie6fixedTL { position: fixed; left:; top:; } .ie6fixedBR { position: f ...
- jQuery.extend()介绍
},{name:"Jerry",sex:"Boy"}) 得到的Result结果是: result={name:"Jerry",age:21, ...
- C++Socket编程总结 [转]
使用socket写代码主要是要看自己的需求是什么. 如果通信时,内容很重要就要使TCP方式. 如果用户数太多,可能就要使用UDP方式了. 在TCP模式下,最简单的方式就是这样的,使阻塞方式: 服务端: ...
- 优雅地使用Windows
优雅地使用Windows 理财推荐:收益还行,安全性比余额宝高,只能自己的卡转进转出所以被盗也不怕,重要的是快速取现实时到账呢 1 现金宝 :点击进入现金宝 或者百度现金宝 2 百度理财 8.baid ...