如何在 SQL Server 中转换数据库的排序规则

如何在 SQL Server 中转换数据库的排序规则,第1张

1 SQL Server 不支持数据库使用除默认排序规则以外的排序规则。因此,在重建 master 数据库之前,请从用户数据库中导出所有数据。2 为数据库中的所有对象生成脚本。3 使用适当的排序规则重新创建 master 数据库。4 创建新的数据库。使用新的默认排序规则自动创建新的数据库。5 运行以前保存的脚本以重新创建对象,然后导入以前导出的数据。

declare @TBLName table (

tid int identity(1,1),

TBLName sysname

)

insert into @TBLName

select name

from dbosysobjects(nolock)

where type = 'U'

order by Name

循环执行

create table #CheckTableS (

[Name] nvarchar(50),

[Rows] char(20),

[reserved] varchar(20),

[Data] varchar(20),

[index_size] varchar(20),

[Unused] varchar(20)

)

insert into #CheckTableS

execute sp_spaceused 加上面 @TBLName裏面的表名

select from #CheckTableS

就可以得到了

你的写法是错误的,按照你的写法在对n进行降序排序时,第一个m升序排序结果会失效,等于最终只读n做了降序排序,而且你的语句本身也比较冗余。

正确的写法是:

SELECT FROM a ORDER BY m ASC ,n DESC;

我们可以通过一些实例来具体分析order by 子句的用法:

假设有Orders 表:

1、实例 1

以字母顺序显示公司名称:

SELECT Company, OrderNumber FROM Orders ORDER BY Company

结果如下:

2、实例 2

以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber

结果如下:

3、实例 3

以逆字母顺序显示公司名称:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC

结果如下:

4、实例 4

以逆字母顺序显示公司名称,并以数字顺序显示顺序号:

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

结果如下:

注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

插入的时候不存在新增的行在末尾这一说法,不过mysql的myisam引擎貌似可以控制在行尾插入,oracle不带这种功能。。

数据库是以文件形式存储在文件系统中,不存在像堆积木一样,一行行堆上去。。 只能说查询出来的内容可以排序。。

SELECTTOP10FROM表名ORDERBY排序列DESC;

SQL的执行顺序先按照你的要求排序,然后才返回查询的内容。例如有一个名为ID自动增长的列,表中有100条数据,列的值得分别是1、2、3、49、99、100。那么查询加了DESC你得到的是91到100条,就是最后十条,如果加ASC你得到的将会是1到10,也就是最前面的那几条。

降序用desc65条记录用top;

如selecttop65from表orderby要按降序的字段desc;

selecttop65fromtableorderbyiddesc。

新建一个表,将旧表数据导入新表,然后新表的字段排序就是OK的了

insert into AA_NEW( ID1,ID2,ID3,ID4 ) (select ID1,ID2,ID3,ID4 from AA)

然后把AA删了,将AA_NEW改名成AA

将字段依次写在order

by

后面即可

,

中间用逗号隔开。

view plaincopy to clipboardprint

select  from 表 order by time , name  

select  from 表 order by time asc , name asc  

select  from 表 order by time desc , name desc  

select  from 表 order by time asc , name desc  

select  from 表 order by time desc , name asc(注:

asc

表示升序

,

desc表示降序

,

未明确写明排序方式时默认是升序)

与之类似的语法是

group

by

,

按多个字段分组时

,

也是依次将多个字段写在group

by

的后面

,

并用逗号隔开

,

范例如下:

view plaincopy to clipboardprint

select time , name , sum() from 表 group by time , name

以上就是关于如何在 SQL Server 中转换数据库的排序规则全部的内容,包括:如何在 SQL Server 中转换数据库的排序规则、sql语句数据库排序、SQL语句排序的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10169539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存