Скажем, у меня есть столбец таблицы с такими результатами:
ABC_blahblahblah
DEFGH_moreblahblahblah
IJKLMNOP_moremoremoremore
Я хотел бы иметь возможность написать запрос, который выбирает этот столбец из указанной таблицы, но возвращает только подстроку до символа подчеркивания (_). Например:
ABC
DEFGH
IJKLMNOP
Функция SUBSTRING, похоже, не подходит для этой задачи, потому что она основана на позиции, а положение подчеркивания меняется.
Я подумал о функции TRIM (конкретно о функции RTRIM):
SELECT RTRIM('listofchars' FROM somecolumn)
FROM sometable
Но я не уверен, как мне заставить это работать, поскольку кажется, что он удаляет только определенный список / набор символов, и я действительно только после символов, ведущих к символу подчеркивания.
instr
возвращает 0, если у вас естьINSTR('ABC/D', '_')
. В итоге у вас есть подстрока от 0 до (0-1), которая имеет значение NULL. Не хорошо.