为什么下面数据的升序排序结果是这样,烦请各位大侠解释

braveboy1979 2006-02-09 11:27:33
--问题,为什么下面数据的升序排序结果是000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz在前,而不是在后,烦请各位大侠解释解释
--例子数据描述
--000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--总长为91
--的ascii为8
--之前数据长度为60,即0005与000520长度都是60,之前存在ascii为31的字符补齐,
--后是30个小写字母z
drop table test3
create table TEST3
(
id1 varchar(600),
)
insert into test3 values('0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')
insert into test3 values('000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')

--奇怪
select * from test3 order by id1 asc
--结果
--000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

--更奇怪
select * from test3 order by left(id1,61) asc
--结果
--0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

...全文
152 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2006-02-09
  • 打赏
  • 举报
回复
--更奇怪
select * from test3 order by left(id1,61) asc
--结果
--0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--------------------------------------------------------------------------------------------------------------------------
楼主的测试环境是什么?我这边的默认安装配置环境下测试结果与上面的结果恰恰相反。
samfeng_2003 2006-02-09
  • 打赏
  • 举报
回复
可以这样排序!

create table TEST3
(
id1 varchar(600),
)
insert into test3 values('0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')
insert into test3 values('000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')

select * from test3 order by left(id1,patindex('%[^0-9]%',id1)-1) asc


drop table test3

id1
------------------------------------------------------------------------------ 0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

(所影响的行数为 2 行)
samfeng_2003 2006-02-09
  • 打赏
  • 举报
回复
000520是小于0005zz所以从2的地方开始,那么就判断出了000520小于0005zz
braveboy1979 2006-02-09
  • 打赏
  • 举报
回复
--例子数据描述
--000520zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--0005zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
--总长为91
--的ascii为8
--之前数据长度为60,即0005与000520长度都是60,之前存在ascii为31的字符补齐,
--后是30个小写字母z

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧