UPPER берет строку и возвращает строку. Если col1
является чем-то отличным от строки, то перед выполнением функции его нужно будет неявно привести к строке. Поскольку выходные данные функции UPPER представляют собой строку, сортировка должна будет использовать семантику сортировки строк, а не семантику сортировки col1
. Если col1
является числовым, например
- UPPER (9) возвращает строку '9'
- UPPER (10) возвращает строку '10'
Строка «9» идет в алфавитном порядке после строки «10», что, по-видимому, является проблемой, которую вы видите.
Но если col1
не является строкой, зачем преобразовывать ее в верхний регистр для сортировки?