我有一个字母数字标记的列表,比如'1a', '1b', '02', '03', '10', '11',
等等......
现在,在这个令牌列表上进行订购的最佳方式是什么?
我正进入(状态'1a', '1b', '10', '11', '02', '03',
但我需要它
'1a', '1b', '02', '03', '10', '11'
更新
好的,我在建议之后这样做,但它不起作用。
declare @tokens table(token varchar(20));
insert into @tokens
select '1a'
select '1b'
select '02'
select '10'
select * from @tokens
order by case
when ISNUMERIC(token) = 1 then right('0000000000'+token+'0',10)
else right('0000000000'+token,10)
end
我得到的回应是'1b', '02', '10', '1a'
更新2
它在进行以下更改后起作用。
declare @tokens table(token varchar(20));
insert into @tokens
select '1a'
insert into @tokens
select '1b'
insert into @tokens
select '02'
insert into @tokens
select '10'
select token from @tokens
order by case
when ISNUMERIC(token) = 1 then right('0000000000'+token+'0',10)
else right('0000000000'+token,10)
end
感谢大家的好主意。