sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo usar la función Substring en PostgreSQL y Redshift

A veces, una cadena en su base de datos puede contener información incrustada en esa cadena como una subcadena. Esta cadena podría ser un número de identificación que podría existir en una actividad o un número de seguimiento del sitio web de su empresa.

Este es un ejemplo en el que una empresa que supervisa la actividad del tráfico del sitio web tiene una convención de nomenclatura específica para el ID de seguimiento de actividad. La convención de nomenclatura es "ID de actividad" que tiene 6 caracteres y en la primera posición, "ID de cliente" que tiene 7 caracteres y aparece en segundo lugar, y en la tercera posición "ID de página" que tiene 3 caracteres. Estos tres números de identificación se juntan en una sola cadena sin caracteres divisorios. En este ejemplo, un número de seguimiento podría verse así:WSL194OH08856CAS.

Es posible que desee extraer el número de identificación del cliente y, para hacerlo, puede usar la siguiente función de subcadena:

SUBSTRING("WSL194OH08856CAS",7,7)

Sabiendo que el número de identificación del cliente tiene 7 dígitos y comienza con la 7.ª posición, la fórmula descrita anteriormente funciona de esta manera:

Además, es posible que desee tener solo el ID de actividad. Para obtener esto, utilizará la misma función solo que de una manera ligeramente diferente.

SUBSTRING("WSL194OH08856CAS",1,6)

Al igual que el fragmento de código anterior, observamos que este comenzará en la primera posición y devuelve una cadena que dura 6 caracteres.

En nuestro último ejemplo, es posible que le interese el ID de la página, que en nuestro caso se encuentra al final de la cadena. Para esto puedes usar la función como esta:

SUBSTRING("WSL194OH08856CAS",14)

En este ejemplo, al omitir el argumento final, le está ordenando a la base de datos que le devuelva todo lo que está después e incluya el carácter en la posición 14.

Con esta función, ahora puede analizar una cadena en una columna en función de las posiciones conocidas y las longitudes de las subcadenas que podría contener. Esta es una técnica útil para dividir una columna en múltiples subcadenas si esas subcadenas se pueden usar de una manera diferente a la totalidad de la cadena original.