Я пытаюсь сделать заказ с помощью нескольких столбцов. Первая колонка имеет несколько условий.SQL Server ORDER BY Несколько значений в случае оператора
Базовый порядок был что-то вроде
SELECT *
FROM Table T
ORDER BY T.A, T.B, T.C
Большую часть времени столбца A является внутр. Иногда A - это int с буквой, прилагаемой в конце. Я хочу, чтобы заказ был моим номером. Я смог добиться этого, изменив запрос на следующее, которое работает уже несколько месяцев.
SELECT *
FROM Table T
ORDER BY
CASE WHEN ISNUMERIC(a.[HUDLine]) = 0 THEN CAST(SUBSTRING(T.A,1, PATINDEX('%[^0-9]%',T.A - 1) AS INT)
ELSE CAST (T.A AS INT) end
, T.B, T.C
Недавно новое требование придумал что позволяет значение «OFFLINE» существует в столбце A.
Я хочу изменить ORDER BY, чтобы сохранить ту же логику, как и раньше, за исключением всех записи с «OFFLINE» находятся в конце.