Заказать BY в SQL - PullRequest
       1

Заказать BY в SQL

1 голос
/ 16 июля 2010

В моем операторе SQL нужно проанализировать поле заголовка, чтобы я мог упорядочить по целым числам.По сути, просто извлеките целые числа в новое поле и упорядочите их в этом поле.

данные в поле заголовка выглядят следующим образом (НЕПРАВИЛЬНО):

TT TEST 750-1
TT TEST 80-1
TT TEST 1 UU 25-1
TT TEST 1 UU 420-1
TT TEST 1 UU 55-46
TT TEST 1 UU 600-8-10
TT TEST 1 UU 608-20
TT TEST 1 UU 750-1

после упорядочения по (ПРАВИЛЬНО))

TT TEST 80-1
TT TEST 750-1
TT TEST 1 UU 25-1
TT TEST 1 UU 55-46
TT TEST 1 UU 420-1
TT TEST 1 UU 600-8-10
TT TEST 1 UU 608-20
TT TEST 1 UU 750-1

Спасибо.

1 Ответ

2 голосов
/ 16 июля 2010

Вы можете использовать функцию PATINDEX:

SELECT 
    CAST(SubString(REPLACE(Title,'-',''),
    PATINDEX('%[0-9]%',REPLACE(Title,'-','')),
    Len(REPLACE(Title,'-',''))) 
    AS INT)
AS [Title Number],*
FROM [Your table-name here] 
ORDER BY [Title Number]

Редактировать: теперь будет работать с дефисом.

Примечание: не будет работать, если нецифровая часть заголовка имеет цифры илиимеет дефис ('-').

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