为什么下面数据的升序排序结果是这样,烦请各位大侠解释
--问题,为什么下面数据的升序排序结果是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