#sql #oracle #substr
#sql #Oracle #substr
Вопрос:
У меня есть поле notetext, в котором будет 2 поля: price
и desc
Цена никогда не бывает одинаковой по количеству символов и представлена в текстовом формате
, например: (51445 текстовое описание) или (9801 текстовое описание)
Как мне настроить его для извлечения суммы, а затем отформатировать ее с 2 десятичными знаками?
Я пробовал: LEFT(note_text,CHARINDEX(' ', note_text) - 1) AS Incoming_Cust_Prc
но это не работает. Я получаю сообщение об ошибке
ORA-00904 ОСТАВИЛ недопустимый идентификатор
Ответ №1:
Сообщение об ошибке предполагает, что СУБД является Oracle, а не SQL Server, в котором есть такие функции, как LEFT()
и CHARINDEX()
. Таким образом, используйте функции Oracle как
SELECT TO_CHAR(SUBSTR(note_text,1,INSTR(note_text,' ')), 'fm999G999D00') AS Incoming_Cust_Prc,
SUBSTR(note_text,INSTR(note_text,' ') 1,LENGTH(note_text)) AS Incoming_Cust_Desc
FROM t
чтобы получить два отдельных столбца price
и description
.