Как отсортировать столбец VARCHAR на сервере SQL, который содержит числа? - PullRequest
49 голосов
/ 23 сентября 2008

У меня есть столбец VARCHAR в базе данных SQL Server 2000, который может содержать буквы или цифры. Это зависит от того, как приложение настроено на клиентской стороне.

Когда он содержит числа, я хочу, чтобы он был отсортирован по номерам, например как «1», «2», «10» вместо «1», «10», «2». Поля, содержащие только буквы или буквы и цифры (например, «А1»), можно сортировать в алфавитном порядке, как обычно Например, это будет приемлемый порядок сортировки.

1
2
10
A
B
B1

Каков наилучший способ добиться этого?

Ответы [ 11 ]

0 голосов
/ 23 сентября 2008
SELECT FIELD FROM TABLE
ORDER BY 
  isnumeric(FIELD) desc, 
  CASE ISNUMERIC(test) 
    WHEN 1 THEN CAST(CAST(test AS MONEY) AS INT)
    ELSE NULL 
  END,
  FIELD

Согласно этой ссылке вам необходимо привести к ДЕНЬГАМ, а затем к INT, чтобы не упорядочивать '$' как число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...