En este artículo hemos visto como usar las columnas computadas:

https://firebird21.wordpress.com/2013/06/23/columnas-computadas/

Ahora, aprovechándonos de ellas mostraremos un truco muy útil cuando el valor buscado puede encontrarse en varias columnas.

Por ejemplo, en nuestra tabla de CLIENTES tenemos estas columnas:

CLI_TELPAR     /* Teléfono particular */
CLI_TELLAB     /* Teléfono laboral */
CLI_CELULA     /* Teléfono celular o móvil */

Y queremos buscar un número de teléfono pero éste puede ser particular, laboral, o celular, entonces podríamos tener esta columna computada:

CLI_TELEFO COMPUTED BY (CLI_TELPAR || ' ' || CLI_TELLAB || ' ' || CLI_CELULA)

Entonces, para buscar a un cliente del cual conocemos su número de teléfono escribiríamos:

SELECT
   CLI_NOMBRE
FROM
   CLIENTES
WHERE
   CLI_TELEFO LIKE '%123456%'

En donde evidentemente ‘123456’ es el número de teléfono que estamos buscando.

La contra de este truco es que no puede usar índices así que en tablas muy grandes no será práctico, pero en tablas no muy grandes no debería tardar más de 2 ó 3 segundos.

Artículos relacionados:

Columnas computadas

Utilizando columnas computadas

Algunos ejemplos de uso de las columnas computadas

Usando un SELECT en una columna computada

Indexando una columna computada

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios