Я пытаюсь отсортировать поле, содержащее буквы, цифры и кавычки, но не могу получить результаты по порядку.Поле (именованное имя) в таблице содержит данные, подобные этим, но не упорядоченные, как показано:
6"w x 9"h
6"w x 10"h
7"w x 8"h
7"w x 9"h
7"w x 10"h
7"w x 21"h
10"w x 10"h
Используемая мной команда:
select name from my_table order by name;
Результат -
10"w x 10"h
6"w x 10"h
6"w x 9"h
7"w x 10"h
7"w x 21"h
7"w x 8"h
7"w x 9"h
Я перепробовал все, что нашел на этом сайте.Я не мог заставить работать последний, но другие работали немного лучше, чем выше, но все еще не правильно.
order by name * 1
order by name + 0
order by CAST(name AS DECIMAL(10,2))
order by length(name), name
order by CAST(SUBSTR(name, 0, LOCATE('w', name) - 1) AS int),
CAST(SUBSTR(name FROM (LOCATE('h', name) - 1)) AS int)
Первые две вышеупомянутые альтернативы дали этот вывод, так что они почти делают это.
6"w x 9"h
6"w x 10"h
7"w x 10"h
7"w x 21"h
7"w x 9"h
7"w x 8"h
10"w x 10"h
Кто-нибудь знает, как их отсортировать, чтобы они были в правильном порядке, как показано ниже.
6"w x 9"h
6"w x 10"h
7"w x 8"h
7"w x 9"h
7"w x 10"h
7"w x 21"h
10"w x 10"h