[Supuesto I: Sistema integral de información para la Subdirección de Selección, con módulos de inscripciones, colaboradores, listados y certificados.] En la base de datos, el campo "IdFormaAcceso" de la tabla "Proceso" es de tipo char(1) y puede tomar los valores "L" (Ingreso Libre) y "P" (Promoción Interna). ¿Qué instrucción deberá utilizar para obtener un nuevo descriptivo de la correspondiente Forma de Acceso?
- A.SELECT IdProceso, IIF IdFormaAcceso = 'L' THEN 'Ingreso Libre' ELSE 'Promoción Interna' ENDIF AS FormaAcceso FROM Proceso.Respuesta correcta
- B.SELECT IdProceso, CASE IdFormaAcceso WHEN 'L' THEN 'Ingreso Libre' WHEN 'P' THEN 'Promoción Interna' END AS FormaAcceso FROM Proceso.
- C.SELECT IdProceso, SWITCH IdFormaAcceso 'L' AS 'Ingreso Libre' 'P' AS 'Promoción Interna' AS FormaAcceso FROM Proceso.
- D.SELECT IdProceso, IIF(IdFormaAcceso, 'L' = 'Ingreso Libre', 'P' = 'Promoción Interna') AS FormaAcceso FROM Proceso.
Explicación
segun el estándar ANSI SQL, la sintaxis correcta es CASE...WHEN...THEN...END (opcion B). La opcion A utiliza la sintaxis 'IIF...THEN...ELSE...ENDIF' que NO es SQL estándar (IIF en SQL Server tiene la forma IIF(condicion, valor_true, valor_false) y no admite la sintaxis con THEN/ELSE/ENDIF).