Nueva edición 2020/2021 del exitoso curso online “Bases de datos espaciales: PostGIS”

Hola a todos los amantes de los sistemas de información geográfica (SIG’s) y software de código abierto, la nueva edición del curso “Bases de datos espaciales: PostGIS” ya está aquí, actualizado a la versión 3 de PostGIS.

Las inscripciones ya están abiertas. El curso consta de un amplio temario compuesto por 15 módulos, 350 páginas de apuntes, 8 horas de video y 120 prácticas a realizar por los estudiantes; con una duración de 105 horas aproximadamente.

En el aprenderás el uso del lenguaje estructurado de consultas (SQL) de la base de datos PostgreSQL, PostGIS básico y Postgis Avanzado.

El curso está avalado por la Universidad Politécnica de Valencia, España, obtendrás un certificado oficial de aprovechamiento de parte de ésta universidad.

Puedes distribuir el tiempo dedicada al curso como más te convenga en los tres meses que dura el curso.

Para mas información e inscripción visita la página de CartoSIG o la página de cursos de la Universidad Politécnica de Valencia.

¡Los esperamos!

Cómo usar LIKE para comparar dos campos o columnas en Oracle.

Por lo regular, al usar el operador LIKE en una sentencia sql, lo comparamos con una cadena de texto, por ejemplo:

SELECT * FROM employees WHERE first_name LIKE '%ll%'; 

En el ejemplo anterior, obtendríamos todas las filas o registros de la tabla “employees” que contengan en su campo o columna “first_name” una doble ele minúscula.

Ahora, ¿qué tal si en lugar de escribir directamente el texto “ll” quisiéramos usar un campo o columna? Entonces tendríamos que usar el operador lógico LIKE de la siguiente forma:

...first_name LIKE '%' || nombre_del_campo_a_comparar || '%';

Donde “nombre_del_campo_a_comparar” es la columna o campo de tipo cadena de una tabla. El operador “||” en oracle, sirve para concatenar cadenas.

Bueno espero y esta entrada les sea de utilidad.

¡Hasta pronto!

Numerar los resultados de una consulta SQL en Oracle

Queremos que los resultados de una consulta SQL en una base de datos ORACLE sean numerados del 1 al total de registros o filas obtenidas en la consulta.

Para ello podemos utilizar la función ROW_NUMBER()  de la siguiente forma:

SELECT 
    ROW_NUMBER() OVER (ORDER BY department_name) AS numero_consecutivo,
    department_name 
FROM 
    departments;

Nos daría como resultado algo como esto:

En la sentencia SQL anterior, estamos indicando que numere los resultados de acuerdo al orden del campo DEPARTMENT_NAME (nombre del departamento) y le asigne a esa numeración el nomnre de NUMERO_CONSECUTIVO.  La cláusula ORDER BY en la función ROW_NUMBER() es obligatoria. Este ordenamiento es independiente de el orden que se le puede dar al resultado final. Si sólo existe el ordenamiento de la función ROW_NUMBER() en la sentencia SQL, el resultado de la consulta saldrá ordenado por el orden indicado en ésta. Por ejemplo la siguiente sentencia:

SELECT 
    ROW_NUMBER() OVER (ORDER BY department_name) AS numero_consecutivo,
    department_id,
    department_name 
FROM 
    departments
ORDER BY department_id;

En donde agregamos que muestre el campo DEPARTMENT_ID y que el resultado final lo ordene por éste mismo campo, daría como resultado esto:

Como se puede observar, el orden del resultado ahora es por el campo DEPARTMENT_ID, sin embargo la numeración es asignada de acuerdo al orden del campo DEPARTMENT_NAME. Como vemos el departamento  llamado “Accounting” sigue conservando el número 1 en la columna “NUMERO_CONSECUTIVO”, el departamento “Administration” el número 2 y así sucesivamente.

¿Dudas? Deja tu comentario.

¡Hasta la próxima!