标签归档:order by

mssql sqlserver order by 关键字说明


摘要:
下文讲述sql脚本order by 关键字用法,如下所示:
实验环境:sql server 2008 R2

sql脚本通过select 和where 关键字将数据表中的数据获取,order by 关键字的功能则将数据表中的列按照一定的顺序排列,order by 可以将数据列按照从大到小或者从小到大的顺序的排序。

order by 语法结构如下:

order by语法:

select 列名 ,… from 表名
[where 查询条件] order by 列名 [asc|desc]
—asc :代表从小到大顺序排列
—desc:代表从大到小顺序排列

例:
SELECT saleName, saleQty, writeDate FROM saleInfoTable ORDER BY writeDate DESC
—-上面的sql脚本是将数据表按照列writeDate倒序排列显示数据

SELECT saleName, saleQty, writeDate FROM saleInfoTable ORDER BY 2 DESC
—-上面的sql脚本是将数据表按照 select 后的第二个栏位倒序排列(及按照saleQty倒序排列)

mssql sqlserver 指定特定值排在表前面


摘要:
下文讲述sql脚本编写中,将 特定值排在最前面的方法分享,
实验环境:sqlserver 2008 R2


例:将数据表中指定值为0的行排在最前面呈现给用户

   create table test(keyId int identity,info varchar(10),flag int)
go

insert into test(info,flag)values ('a',-100),('b',-2),('C',-3)
,('d',2),('e',4),('f',8),('g',9),('h',0),('e',1),('f',0)
go

---将flag值等于0的放入最前面显示
select * from test  order by 
     case when flag =0 then 0 else 1 end ,
 flag asc  
 go

---将flag值等于2的放入最前面显示
select * from test  order by 
     case when flag =2 then 0 else 1 end ,
 flag asc  
 go 

go
truncate table test
drop     table test
mssql_sqlserver_orderby_应用举例

mssql_sqlserver_orderby_应用举例

mssql sqlserver order by 按列位置排序方法分享


摘要:
下文讲述order by 按列位置排序的方法分享



按列位置排序的方法简介

按列位置排序:顾名思义就是按照列位置所在的列名进行排序操作;
按列位置排序:将排序所使用的列名转换为列名所在的位置号;
按列位置排序可以和按列名排序一起混合使用。
例:

select keyId,info,qty from tableName 
  order by 2,3 
 --- order by 2,3 的含义:
先按order by 2 按select查询条件中的第二列 info 排序
然后再按order by 3 select 查询条件中的第三列 qty 排序


按列位置排序的优点:
避免输入列名,简化sql脚本编写
按列位置排序的缺点:
如果对select中的查询列进行改动时,此时也应对排序号进行相应的变动
如果排序列不存在于select 查询列中,则不能使用按位置编号排序