gate_s

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1.查询安装的排序规则选项喝当前的排序规则服务器属性 

select * from fn_helpcollations();

2.查看当前服务器的排序规则

select serverproperty('Collation') as ServerCollation;

3.修改数据库DB1的排序规则,使他区分大小写

create database DB1

go

alter database DB1

collate SQL_Latin1_General_CP1_CS_AS;

go

select databasepropertyex('DB1','Collation') as DataBaseCollation

4.SQL server不仅可以在服务器、数据库、和列级别设置排序规则,甚至也可以在单独的查询级别设置排序规则。

select * from Product order by name Collate Danish_Norwegian_CI_AI

5.一个有意思的现象,下面查找product表中6个最低的价格:

select top 6 productNumber,Name,ListPrice
from product  order by ListPrice desc 

结果:

productNumber
Name
ListPrice
num1 name1 4000
num2 name2 4000
num3 name3 4000
num4 name4 4000
num5 name5 4000
num6 name6 5000

看上去,查询简洁且结果不错,但它是错的。如果查看按价格排序的原始数据,你就会发现价格为4000的有5行,而价格位5000的有4行。如果想让4行全部显示出来,就需要用with ties选项,它允许最后的位置包含多行,前提是这些行的值在order  by 字句使用的列中有相同的值。查询如下:

select top 6 with ties  productNumber,Name,ListPrice
from product  order by ListPrice desc 
productNumber
Name
ListPrice
num1 name1 4000
num2 name2 4000
num3 name3 4000
num4 name4 4000
num5 name5 4000
num6 name6 5000
num7 name7 5000
num8 name8 5000
num9 name9 5000
posted on 2015-07-23 18:21  gate_s  阅读(267)  评论(0编辑  收藏  举报