Publicado el Dejar un comentario

SQL: regresar un valor en lugar de nulo (null) en una consulta.

En ocasiones una consulta SQL puede regresar en una de sus columnas un valor nulo, pero necesitamos que en su lugar regrese un valor por defecto ya sea porque necesitamos hacer alguna operación con ese valor o simplemente por estética.

Existen varias funciones que hacen lo mismo según la base de datos de que se trate. Aquí se verá la función COALESCE(). Esta función regresa el primer argumento no nulo de la lista de argumentos que se le pasen. Su sintaxis es:

COALESCE(argumento1, argumento2,…argumentoN)

A ésta función se le deben pasar al menos 2 argumentos. Si todos los argumentos de la lista son nulos, esta función regresara nulo (nul). Los argumentos no nulos dados deben ser del mismo tipo de dato, si no la función podría marcar error. Es decir, deben ser todos numéricos o todos cadena o de otro tipo. Veamos unos ejemplos:

SELECT COALESCE(null, 1, 3) as campo1;

Al ejecutar la sentencia sql anterior, la expresión campo1 regresará el valor 1, ya que es el primer argumento no nulo en la lista de argumentos que se le dió. El ejemplo anterior podrá funcionar en SQLite, SQL Server o Postgresql. En Oracle se debe ejecutar la siguiente sentencia:

SELECT COALESCE(null, 1, 3) as campo1 from dual;

Espero y les sea de utilidad. ¿Dudas u observaciones? Deja tu comentario. ¡Saludos!

Publicado el 3 comentarios

SQL: Obtener último(s) caracteres de un campo texto.

Hola, en nuestro quehacer diario con bases de datos relacionales nos topamos a veces con que hay que extraer el o los últimos caracteres de un campo de tipo texto o string de una tabla. Según la base de datos usada la instrucción puede variar.

Enseguida veremos algunos ejemplos, en las distintas bases de datos, donde extraeremos los útimos 2 caracteres del texto constante “texto ejemplo”:

SQLite:

SELECT SUBSTR(‘texto ejemplo’, -2);

Postgresql:

SELECT SUBSTRING(‘texto ejemplo’ from ‘.{2}$’);

SELECT RIGHT(‘texto ejemplo’,2);

MySQL o MariaDB:

SELECT SUBSTRING(‘texto ejemplo’,-2);

SELECT RIGHT(‘texto ejemplo’,2);

SQL Server:

SELECT RIGHT(‘texto ejemplo’, 2);

ORACLE:

SELECT SUBSTR(‘texto ejemplo’, -2) FROM dual;

Todas las sentencias sql descritas anteriormente ejecutadas en la respectiva base de datos regresarán la cadena de caractares ‘lo’.

Dependiendo del número de caracteres a la derecha que queramos obtener sólo tendremos que cambiar el número dos por el número de caracteres deseado en cada una de las sentencias anteriores.

Espero y les séa de utilidad este artículo. Agradezco sus comentarios. ¡Saludos!