Как получить подстроку до второго появления разделителя - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь получить подстроку до 2-го вхождения разделителя, но кое-как это не работает. Я перешел по нескольким ссылкам stackoverflow:

SQL Сервер - найти n-ное вхождение в строке

Вот столбец в моей базе данных:

this+is+my
never+ending+movie
hello

Требуемый вывод

this+is
never+ending
hello

Я пытался:

charindex('+', col1, (charindex('+', col1, 1))+1)

Ошибка: SQL Ошибка [500310] [42883]: недопустимая операция Amazon: функция charindex («неизвестно» ", изменяющийся символ, целое число) не существует;

Я использую базу данных Amzaon Redshift и Dbeaver для подключения.

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Вы можете использовать SPLIT_PART

select split_part(col1,'+',1) || '+' || split_part(col1,'+',2) as string_value
from table_name;
0 голосов
/ 25 февраля 2020

вы можете использовать left с Charindex, попробуйте следующее

declare @S varchar(20) = 'this+problem+is+fixedby+Girish';
select left(@S, charindex('+', @S, charindex('+', @S)+1)-1) as Result;

здесь dbfiddle

в вашем случае: -

select left(columnname, charindex('+', columnname, charindex('+', @S)+1)-1) from your table as Result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...