多个字段排序的时候,按照你在order by 之中指定的顺序进行排列的。
select form tbl1 order by col1 desc, col2, col3
如上面, 先按照col1 的值递减排列,
如果col1的值相同,则按照col2来排列,
如果col1和col2的值都相同,则按照col3的值进行排列。
你要求的排列没有什么规律呀。 一般都是用 order by 字段名 DESC 倒叙排列 或者order by 字段名 asc 正序排列 ORACEL的默认排序是 1、用了Oracle的堆表(如果你建表时候没有指定表类型,默认就是堆表) 2、按照且仅按照一个有大量重复数据的字段排序 而且oracle11G已经取消了这种默认的排序机制,目的就是为了能在最短的时间返回出结果给 *** 作者。
1:用ASCII码排序,DB2应该有这个函数吧,ASCII()?
2:加个int类型的对照字段,'1'->1,'2'->2 'a'->97,'b'->98。
3:写个自定义函数也可以。
首先要知道数据库排序规则的含义,如Chinese_PRC_CI_AS就可以不区分大小写了,下面为Chinese_PRC打头的规则:
_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
区分大小写、区分重音、区分假名类型、区分全半角
如需要对数据库重新进行规则设定,具体步骤如下:
1、找到sql2005 的安装包
2、执行下面的批处理,指定某种规则,如Chinese_PRC_CI_AS
内容如下:
cd D:\SQL Server 2005\SQL Server x86\Servers
start /wait setupexe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=sa SQLCOLLATION=Chinese_PRC_CI_AS
3、重新附加一下数据库就发现排序规则变更了。
以上就是关于数据库中多字段的排序是按什么排的全部的内容,包括:数据库中多字段的排序是按什么排的、数据库建表,类型,默认,排序规则是什么意思、数据库如何将 1,2,3,4,5,6,7,8,9,10,11,a,b,c排序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)