sqlserver排列,sqlserver 排序

sqlserver排序规则的问题

如何区分大小写、全角半角(SQL2000测试通过):

创新互联公司服务项目包括百色网站建设、百色网站制作、百色网页制作以及百色网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,百色网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到百色省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

/*

用定义排序规则(Chinese_PRC_CS_AS_WS、Chinese_PRC_BIN)来区分,

介绍两种排序规则:

第一个Chinese_PRC所属区域(中文(香港特别行政区),中文(中华人民共和国),中文(新加坡))

CS(CaseSensitivity缩写):CS 指定区分大小写,CI 指定不区分大小写。

AS(AccentSensitivity缩写):AS 指定区分重音,AI 指定不区分重音。

WS(WidthSensitivity缩写):WS 指定区分大小写,Omitted 指定不区分大小写。(区分全角半角)

BIN:指定使用二进制排序次序。

KanatypeSensitive:KS 指定区分假名类型,Omitted 指定不区分大小写。

_BIN 二进制排序

_CI_AI 不区分大小写、不区分重音、不区分假名类型、不区分宽度

_CI_AI_WS 不区分大小写、不区分重音、不区分假名类型、区分宽度

_CI_AI_KS 不区分大小写、不区分重音、区分假名类型、不区分宽度

_CI_AI_KS_WS 不区分大小写、不区分重音、区分假名类型、区分宽度

_CI_AS 不区分大小写、区分重音、不区分假名类型、不区分宽度

_CI_AS_WS 不区分大小写、区分重音、 不区分假名类型、区分宽度

_CI_AS_KS 不区分大小写、区分重音、区分假名类型、不区分宽度

_CI_AS_KS_WS 不区分大小写、区分重音、区分假名类型、区分宽度

_CS_AI 区分大小写、不区分重音、 不区分假名类型、不区分宽度

_CS_AI_WS 区分大小写、不区分重音、不区分假名类型、区分宽度

_CS_AI_KS 区分大小写、不区分重音、区分假名类型、不区分宽度

_CS_AI_KS_WS 区分大小写、不区分重音、区分假名类型、区分宽度

_CS_AS 区分大小写、区分重音、不区分假名类型、不区分宽度

_CS_AS_WS 区分大小写、区分重音、不区分假名类型、区分宽度

_CS_AS_KS 区分大小写、区分重音、区分假名类型、不区分宽度

_CS_AS_KS_WS 区分大小写、区分重音、区分假名类型、区分宽度

*/

在我的Blog里有举用法例子

sqlserver 汉字默认排序是什么方式

默认排序是:Chinese_PRC_CI_AI_WS

延伸阅读:

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。如:

Chinese_PRC_CS_AI_WS

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份即后缀 含义:

_BIN 二进制排序

_CI(CS) 是否区分大小写,CI不区分,CS区分

_AI(AS) 是否区分重音,AI不区分,AS区分 

_KI(KS) 是否区分假名类型,KI不区分,KS区分 

_WI(WS) 是否区分宽度 WI不区分,WS区分 

sqlserver排序问题

1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count(*) 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束L = 日志FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程S = 系统表TF = 表函数

TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjects.name from sysobjects.xtype ='U';SELECT name

WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status0,即:select * from sysobjects where xtype='U' and status0

怎么让SQLServer的id按照数字大小顺序排序

可以通过 “order by 字段名 asc (desc)” 命令进行排序。

sql:select * from tablename order by id DESC;

用 DESC 表示按倒序排序(即:从大到小排序) ,用 ACS 表示按正序排序(即:从小到大排序)。

参考资料

csdn.csdn[引用时间2018-1-28]

怎样知道SQLServer的排序规则

语句:

select

SERVERPROPERTY('Collation')

--查看默认排序规则

select

SERVERPROPERTY('SqlCharSetName')--查看排序使用字符集名称

至于sqlserver的字符集个人认为就是windows的字符集。

排序规则还可以通过SSMS中右键查看数据库属性里的‘维护'。

sqlserver排序

排序可以是升序的

(ASC),也可以是降序的

(DESC)。如果未指定是升序还是降序,就假定为

ASC。

下面的查询返回按

ProductID

升序排序的结果:

代码如下

复制代码

USE

AdventureWorks2008R2;

GO

SELECT

ProductID,

ProductLine,

ProductModelID

FROM

Production.Product

ORDER

BY

ProductID;

如果

ORDER

BY

子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序

Production.Product

表中的行,然后在每个产品子类别中按

ListPrice

升序排序这些行。

代码如下

复制代码

USE

AdventureWorks2008R2;

GO

SELECT

ProductID,

ProductSubcategoryID,

ListPrice

FROM

Production.Product

ORDER

BY

ProductSubcategoryID

DESC,

ListPrice;

问题

同一...排序可以是升序的

(ASC),也可以是降序的

(DESC)。如果未指定是升序还是降序,就假定为

ASC。

下面的查询返回按

ProductID

升序排序的结果:

代码如下

复制代码

USE

AdventureWorks2008R2;

GO

SELECT

ProductID,

ProductLine,

ProductModelID

FROM

Production.Product

ORDER

BY

ProductID;

如果

ORDER

BY

子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序

Production.Product

表中的行,然后在每个产品子类别中按

ListPrice

升序排序这些行。

代码如下

复制代码

USE

AdventureWorks2008R2;

GO

SELECT

ProductID,

ProductSubcategoryID,

ListPrice

FROM

Production.Product

ORDER

BY

ProductSubcategoryID

DESC,

ListPrice;

问题

同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?

其实,只要语句里没有指定“order

by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引

你想结果集按照那个建立了索引的字段排序,那么你不指定“order

by”是没有问题的,因为表的存储顺序就是按照那个字段

的顺序排好序了,所以可以不指定“order

by”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了

索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“order

by”指定。如果你没有指定,哪怕一模一样的查询,

结果集顺序这一次和上一次不一样是很正常的。


网页标题:sqlserver排列,sqlserver 排序
文章分享:http://azwzsj.com/article/dseopjo.html