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 |