Función FORMAT en PostgreSQL

La función FORMAT en PostgreSQL es una herramienta versátil que permite formatear argumentos basándose en una cadena de formato personalizada. Esta función es ideal para construir cadenas dinámicas, generar reportes personalizados o dar un formato específico a los resultados de tus consultas. Su flexibilidad radica en la capacidad de trabajar con múltiples tipos de datos y adaptarlos a un formato definido según tus necesidades.

Como parte de las funciones de cadena en PostgreSQL, FORMAT es especialmente útil cuando necesitas combinar valores de columnas, números, fechas o texto en una única salida con un estilo coherente. Con su sintaxis intuitiva y su amplio rango de opciones, es una función que no puede faltar en tu arsenal para manipulación de datos.

En este artículo, primero exploraremos la sintaxis básica de FORMAT, y luego te mostraré ejemplos prácticos que ilustran cómo aplicarla en diferentes contextos para sacar el máximo provecho de esta potente función.

Para más información, puedes consultar la documentación oficial de PostgreSQL.

Sintaxis

La sintaxis para utilizar la función FORMAT en PostgreSQL es la siguiente:

FORMAT(formato_cadena [, formato_argumentos [, ...] ])




  • FORMAT: es el nombre de la función.
  • formato_argumentos: los argumentos a mostrar (el texto que se mostrará)
  • formato_cadena: este argumento es una cadena que especifica cómo se debe formatear la cadena resultante. El formato de cadena tiene la siguiente sintaxis:
%[posición][indicador][ancho]tipo
  • posición: es el argumento que debe mostrar, la posición. Siempre comienza en el valor 1 al no ser que se omita y obtendrá el siguiente argumento.
  • indicador: si se le indica el símbolo menos le estaremos diciendo que debe justificarlo a la izquierda, si no se escribe nada se justificará a la derecha. Siempre debe usarse junto a la opción ancho.
  • ancho: el ancho del argumento, si tu argumento es la palabra ‘hola’ que tiene 4 caracteres y pones un tamaño de 3 no se truncara, pero si pones un tamaño de 5 escribirá un espacio al final y si defines un tamaño de -5 pondrá un espacio al principio debido al flag –
  • tipo: tipo al que lo convertirá; s para una cadena, I para identificador y L para ponerlo entre comillas.

Ejemplos

Formato simple con un argumento

En el siguiente ejemplo utilizamos simplemente el formato de salida. Escribimos la palabra ‘Hola’ seguido de una coma y después mostramos el primer argumento que es ‘Bienvenidos’.

SELECT FORMAT('Hola, %s','Bienvenidos');
  • %: indica que se lea el primer argumento.
  • s: indica que debe devolver una cadena.
Función FORMAT en PostgreSQL

Formato simple con dos argumentos

En el siguiente ejemplo utilizamos la posición del argumento junto a su tipo. Escribimos la palabra ‘Hola’ seguido de una coma y después mostramos el primer argumento que es ‘Bienvenidos’, junto al segundo que es ‘a mi web’

SELECT FORMAT('Hola, %1$s %2$s','Bienvenidos', 'a mi web');
  • %1$: indica que se lea el primer argumento.
  • %2$: indica que se lea el segundo argumento.
  • s: indica que debe devolver una cadena.

Formato con dos argumentos, indicador y ancho

En el siguiente ejemplo utilizamos la posición del argumento, su tipo, el indicador y el número de caracteres. Escribimos la palabra ‘Hola’ seguido de una coma y después mostramos el primer argumento que es ‘ Bienvenidos’, junto al segundo que es ‘a mi web ‘

SELECT FORMAT('|Hola, %1$15s %2$-10s|','Bienvenidos', 'a mi web');

Si analizamos la composición del primer formato:

  • %1$: indica que se lea el primer argumento.
  • 15: es el tamaño que tiene que tener el primer argumento (11 de la palabra ‘Bienvenidos’ más tantos espacios para completar los 15. Los espacios se incluyen a la izquierda porque no se le ha puesto el indicador -)
  • s: indica que debe devolver una cadena.

Si analizamos la composición del segundo formato:

  • %2$: indica que se lea el segundo argumento.
  • 10: es el tamaño que tiene que tener el segundo argumento (+ de la palabra ‘a mi web’ más tantos espacios para completar los 10. Los espacios se incluyen a la derecha porque se le ha puesto el indicador -)
  • s: indica que debe devolver una cadena.

Formato con tres argumentos, indicador y ancho

En esta ocasión tenemos tres argumentos, en los dos primeros solo le indicamos la posición (%1$s y %2$s), pero en el tercero solo le indicamos el indicador y el ancho (%-15s). El sistema, al no decirle la posición del argumento a leer, obtendrá el siguiente argumento al anterior, en este ejemplo el argumento 3.

SELECT FORMAT('Hola, %1$s %2$s %-15s|','Bienvenidos', 'a mi web', 'de PostgreSQL');

Formato escribiendo el caracter %

Para conseguir que nos imprima el carácter % tan solo debemos escribirlo dos veces seguidas:

SELECT FORMAT('Hola, has completado el %1$s%%','100');

Formato escribiendo un literal

Para conseguir que nos imprima el argumento entre comillas cambia el formato s por L:

SELECT FORMAT('Hola, %1$L','Miguel');

Escribir un comentario