成都网站建设设计

将想法与焦点和您一起共享

sqlserver排重,sql 多重排序

删除纪录后 标示字段不会重新排序 怎么把sqlserver数据表中标示字段重新排序

你所说的标示字段是不是自动编号 是的话就不要重新排序了 你要想重新排序就拿别的字段做主键 然后ORDER BY

成都创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、网站优化、微网站、微信平台小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计、网站建设、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

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数据表排序问题

你这个问题,本人以前就遇到过,目前按照时间排序(order by 时间)输出是最好的办法。库里有多乱你也不用看啊!

----

第二种办法:根据了一位数据库大师的推导方式,A -R,那么(A,B)-R

,所以建立复合聚集主键就可以了。

如果非要创建单列主键,那么ID 最好不要创建 唯一约束,或是单列主键。如果不信你自己多试试。

如下有代码 你可以试试:

----------

USE [LEdwin]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

DROP TABLE [dbo].[A]

GO

CREATE TABLE [dbo].[A](

[ID] [uniqueidentifier] NOT NULL,

[CreateDate] [datetime] NOT NULL

) ON [PRIMARY]

ALTER TABLE A WITH NOCHECK

ADD CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED

(CreateDate ASC,ID ASC)

GO

CREATE NONCLUSTERED INDEX C_CreateDate ON A(CreateDate ASC)

WITH

FILLFACTOR=50

GO

--CREATE UNIQUE NONCLUSTERED INDEX U_NONC_ID ON A(ID)

--WITH

--FILLFACTOR=50

declare @cnt int set @cnt=0

declare @Monday datetime set @Monday=getdate()

while @cnt10

begin

insert into A(ID,CreateDate) values (newid(),dateadd(s,@cnt,@Monday))

set @cnt=@cnt+1

end

SELECT [ID],[CreateDate] FROM [LEdwin].[dbo].[A]

--------

执行结果:

429BE969-2F91-4603-B0C5-D38CCDA7C069 2012-11-17 09:11:50.513

0D5B03D1-5739-4202-A875-95982A986751 2012-11-17 09:11:51.513

AC02C770-9FB3-44E9-AA14-00E80B473EFB 2012-11-17 09:11:52.513

1FEDAA92-95C6-437A-8D84-7DA9F9914501 2012-11-17 09:11:53.513

FFB334F6-BBB2-431D-8856-557BA876BA63 2012-11-17 09:11:54.513

8BA91F63-9643-412C-9F4D-F3DD23E9C4AB 2012-11-17 09:11:55.513

4DCB295D-4B3C-4FEA-9DAB-7DFFCC6BD3312012-11-17 09:11:56.513

EBDB669D-1D99-4BC8-90B1-04D46AA8D876 2012-11-17 09:11:57.513

FFD9DFF1-14DF-4D18-9888-3E67A5E81614 2012-11-17 09:11:58.513

C22B1E6C-E1F8-4901-A8B7-A5F7EB9551F0 2012-11-17 09:11:59.513

----

这样直接查看就可以。


本文标题:sqlserver排重,sql 多重排序
转载来源:http://chengdu.cdxwcx.cn/article/hcgejj.html