У меня есть список буквенно-цифровых маркеров, скажем, '1a', '1b', '02', '03', '10', '11',
и т.д ...T-Sql - Заказывайте на Alphanumeric
Теперь, что это лучший способ, чтобы сделать заказ в этом списке лексем?
Я получаю '1a', '1b', '10', '11', '02', '03',
, но мне нужно, чтобы это было
'1a', '1b', '02', '03', '10', '11'
UPDATE
нормально, я делаю это после того, как предложение, но она не работает.
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'
UPDATE2
Он работает после того, как сделать следующие изменения.
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
Спасибо всем вам за ваши приятные идеи.
Какую базу вы используете? – Oded
@Oded - sql server 2008, исправил заголовок, спасибо. – SoftwareGeek
@SoftwareGeek - Из любопытства, что представляют данные? Значит ли алфавитный символ особый смысл? – Thomas