La tercera columna del conjunto de columnas de resultados será el resultado
de una expresión de columna. La base de datos del videoclub almacena la fecha en que se
debe devolver el vídeo en formato DATE. El formato DATE debe convertirse en una serie de
caracteres que contenga el nombre del día que se debe devolver el vídeo. Una función de
base de datos obtendrá un entero a partir de la fecha correspondiente al día de la
semana. Utilizará una expresión CASE para evaluar la función y convertir los enteros
devueltos de la función en series de caracteres para cada día de la semana (por ejemplo,
1 se cambiará por "Sunday" en el resultado de la consulta).
Realizará las siguientes actividades para construir la expresión CASE:
- Abra el asistente Constructor de expresiones.
- Cree una expresión CASE de tipo simple.
- Añada la función DAYOFWEEK para la evaluación en la expresión CASE. La función
DAYOFWEEK permite obtener el día de la semana a partir de la columna DATE.
Esta función devuelve un entero correspondiente al día de la semana.
- Añada cláusulas WHEN para producir los resultados de la expresión CASE.
Para añadir una expresión CASE:
- En la página Columnas del panel Diseño, efectúe una doble pulsación en la tercera
celda en la columna Columna (la primera celda vacía), pulse
Construir expresión al final de la lista y, a continuación, pulse
Intro. Se abrirá el asistente Constructor de expresiones.
- Cree una expresión CASE de tipo simple.
- En la página Tipos de expresión, pulse CASE - de búsqueda o
simple y, a continuación, pulse Siguiente.
- En la página Opciones CASE, pulse Cláusula-WHEN-simple y, a
continuación, pulse Siguiente.
- Añada la función DAYOFWEEK:
- En la página Expresión CASE simple, en la lista CASE, pulse
Construir expresión de función. Se abrirá el asistente Constructor de expresiones de funciones.
- En la lista Seleccione una categoría de función, pulse
Fecha y hora.
- En la lista Seleccione una función, pulse
DAYOFWEEK.
- En la lista Seleccione una signatura de función, pulse
DAYOFWEEK(DATE) --> INTEGER. La signatura de función muestra que la función requiere un argumento.
- En la columna Valor de la tabla de argumentos, efectúe una
doble pulsación en la celda, pulse R.DATE en la lista y, a
continuación, pulse Intro. La sintaxis de la expresión de función es DAYOFWEEK(DATE), tal como se
muestra en la sección 5 de la imagen siguiente:

Observe que el
calificador de tabla R de la columna DATE
que ha seleccionado no aparece en este asistente. Aparecerá en la expresión cuando vuelva
al Constructor de consultas SQL.
- Pulse Finalizar para volver a la construcción de la expresión
CASE.
- En la lista CASE, seleccione DAYOFWEEK(DATE).
- Añada siete cláusulas WHEN a la expresión CASE (una por cada día de la semana) para
convertir el entero devuelto de la función DAYOFWEEK en series de caracteres. En la tabla siguiente se muestra la serie de caracteres que se necesita para cada
valor devuelto de la función DAYOFWEEK:
Tabla 1. Valores de DAYOFWEEK y series de caracteres resultantesValor de DAYOFWEEK |
Serie de caracteres resultantes |
1 |
'Sunday' |
2 |
'Monday' |
3 |
'Tuesday' |
4 |
'Wednesday' |
5 |
'Thursday' |
6 |
'Friday' |
7 |
'Saturday' |
- En la tabla, efectúe una doble pulsación en la celda vacía en la columna
Expresión a la derecha de WHEN y
especifique el entero 1. Cuando especifica datos en esta y otras tablas asociadas con el Constructor de
consultas SQL, para que la entrada se aplique, una vez especificado el valor en la celda,
debe pulsar Intro o cambiar el foco a otra celda.
- Efectúe una doble pulsación en la celda vacía en la columna Expresión del
resultado a la derecha de THEN y especifique la serie
'Sunday'.
- Para cada una de los seis días de la semana restantes, pulse Añadir
cláusula WHEN y repita los pasos 4a y 4b, para que la tabla tenga un aspecto
similar a la imagen siguiente:

- Pulse Finalizar para cerrar el asistente Constructor de
expresiones.
La expresión CASE completada aparece en la lista de expresiones de columna en la
página Columnas del panel Diseño, y también aparece en la fuente de sentencias SQL.