Función FORMAT en PostgreSQL

La función FORMAT en PostgreSQL te permite dar formato a argumentos basados en una cadena de formato. Esta función está englobada en las denominadas funciones de cadena.

Sintaxis

Escribe la siguiente sintaxis para utilizarlo:

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, sino 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

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.