Если вы смешали цифры и текст в одном столбце, вы можете использовать это для сортировки по числовым значениям для чисел.
CREATE TABLE #Temp
(
Data varchar(100)
)
INSERT INTO #Temp VALUES ('241.110')
INSERT INTO #Temp VALUES ('1340.306')
INSERT INTO #Temp VALUES ('b')
INSERT INTO #Temp VALUES ('aa')
INSERT INTO #Temp VALUES ('241.2')
SELECT *
FROM #Temp
ORDER BY
case isnumeric(Data) when 0 then Data end asc,
case isnumeric(Data) when 1 then cast(Data as numeric(10,3)) end asc
Результат:
Data
----------
241.110
241.2
1340.306
aa
b
Редактировать1 Второй столбец должен обрабатываться таким же образом.
SELECT *
FROM #Temp
ORDER BY
case isnumeric(Data) when 0 then Data end asc,
case isnumeric(Data) when 1 then cast(Data as numeric(10,3))end asc,
case isnumeric(Data2) when 0 then Data2 end asc,
case isnumeric(Data2) when 1 then cast(Data2 as numeric(10,3))end asc