В следующем наборе из двух запросов он будет работать как один и тот же набор значений, где в одном случае float, а в другом случае сравнивается строка float с фиксированным размером значений
SELECT * FROM SAMPLE_TABLE WHERE MAIN_ID = 'SomeVal' ORDER BY OBJ_ID ASC
В приведенном выше SQL, MAIN_ID используется для фильтрации связанных строк, а OBJ_ID является первичным ключом SAMPLE_TABLE , где OBJ_ID - строка чисел с плавающей запятой с фиксированным размером в формате 999999.9999, но когда я пытался TO_NUMBER (OBJ_ID) вместо OBJ_ID показывает невозможность конвертации.Таким образом, я сохранил то же, что и выше, и запустил и получил результаты сортировки, такие же, как и при использовании float.
Мой вопрос:
ORDER BY OBJ_ID и ORDER BY TO_NUMBER(OBJ_ID) приведет к другому порядку результатов?
Если так, есть ли какое-либо иное решение, кроме TO_NUMBER , которое может обслуживать строку в правильном формате, например999999,9999 и не совпадают с тем же запросом?
Например, строка OBJ_ID имеет следующие значения 181001.2122, 181001.2123, 181001.2143, abcd, abc.efg, где последние два значения являются случайными значениями, представляющими отклоненную запись,есть какие-либо способы написать один sql, который будет правильно упорядочивать первые три числа с плавающей точкой, которые на самом деле являются строками с форматом "999999.9999"