Extract a string using regex_substr

0

I have a code written in DB2 that will extract the string values between / to different columns.

REGEXP_SUBSTR(RIGHT(TRIM('/BJ/1/10/114/201010049'),LENGTH(TRIM('/BJ/1/10/114/201010049'))-4),'^(.*?)/',1,1),LENGTH(REGEXP_SUBSTR(RIGHT(TRIM('/BJ/1/10/114/201010049'),LENGTH(TRIM('/BJ/1/10/114/201010049'))-4),'^(.*?)/',1,1))

From above code, the string after '/BJ/' will go to column_1, the value after '1/' will go to column_2 etc as below: Column_1 = 1, column_2 = 10, column_3 = 114, column_4 = 202010049. Now I am trying to do the same in redshift. but I am getting below error:

error: Invalid preceding regular expression prior to repetition operator. The error occurred while parsing the regular expression: '^(.*?>>>HERE>>>)/'

Can anyone please help me to fix this?

Joe
preguntada hace 3 meses179 visualizaciones
1 Respuesta
2
Respuesta aceptada

Hello Joe,

You can try using the split_part string function as below

select params, split_part(params, '/', 3) as col1, split_part(params, '/', 4) as col3, split_part(params, '/', 5) as col3, split_part(params, '/', 6) as col4 from ( select '/BJ/1/10/114/201010049' as params ) tmp

Please feel free to comment if you have further issues

AWS
EXPERTO
respondido hace 3 meses
profile picture
EXPERTO
revisado hace 2 meses
  • Thanks a lot. This works fine.

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas