Dos variables en Postgresql:
V_VAR :='US185268001,US285268002,US385268005'; --Input V_OUT := '001,002,005'; --Expected output to be stored¿Alguna idea de cómo hacerlo en postgresql? Últimos 3 caracteres de cada valor separado por comas. Cómo manipular la variable V_VAR para obtener la salida como variable V_OUT.
Actualizar:
Tenga en cuenta: V_VAR puede tener cualquier número de lista CSV. Aquí tengo 3 valores para el propósito del ejemplo.
Gracias, Karthik
Podemos intentar usar un reemplazo de expresiones regulares aquí:
SELECT col, REGEXP_REPLACE(col, '.*?([0-9]{3})(,|$)', '\1\2', 'g') AS col_out FROM yourTable;La estrategia aquí es hacer coincidir perezosamente hasta hacer coincidir (y capturar) los últimos 3 dígitos de cada código en un grupo y una coma opcional en un segundo grupo. Luego, reemplazamos con solo los tres dígitos y el separador de coma opcional.
Nota: como ha señalado @BillKarvin, almacenar CSV no normalizado no es un diseño de base de datos óptimo. Considere obtener cada código en un registro separado si es posible.