Как я могу отрезать левую часть строки с неизвестной длиной? (с функцией sql) - PullRequest
3 голосов
/ 16 мая 2019

В процессе ETL я получаю поле varchar, и длина (значения) изменяется от строки к строке.Мне нужно сохранить 5 символов с правой стороны строки.Это означает, что мне нужно обрезать левую сторону, но я не могу из-за неизвестной длины.

Я пробовал select substring('24:15:11',4, 5), но это мне не помогает, строка может быть '2019-05-01 22:15:11'.

sql:

select substring('24:15:11',4, 5)

Ожидается:

15:11

Ответы [ 2 ]

5 голосов
/ 16 мая 2019

Вы можете использовать substr.Отрицательная начальная позиция интерпретируется как относительная относительно конца строки.

select substr('24:15:11', -5)
3 голосов
/ 16 мая 2019

Вы можете использовать length (), чтобы определить 2-й аргумент substr ():

select substr('24:15:11', length('24:15:11') - 4, 5)

или просто:

select substr('24:15:11', length('24:15:11') - 4)

Читать о функциях строки в preosto .

...