IF, IIF en SQL Server
Es posible utilizar IIF, If en SQL server?
No hay sentencias IIF e IF en SQL Server para utilizar en una consulta!
- Code: Seleccionar todo
- SELECT idpersona, paterno,
- materno, nombres,
- IIF(Persona.sexo = 'F', 'Mujer','Hombre') AS Genero
- FROM Persona
- WHERE provincia = 'Puno';
La consulta va a ejecutarse sin problemas en MS Access, para visualizar el genero de un listado de personas, pero al ejecutar la misma consulta en SQL Server obtendremos un mensaje de error:
- Code: Seleccionar todo
- Mens. 102, Nivel 15, Estado 1, Línea 1
- Incorrect syntax near '='.
Así que, como se mencionó anteriormente, la consulta tiene que volver a escribirse utilizando la expresión CASE. Eso podría ser algo como esto:
- Code: Seleccionar todo
- SELECT
- idpersona, paterno, materno, nombres,
- CASE
- WHEN Sexo = 'F'
- THEN 'Mujer'
- ELSE 'Hombre'
- END AS Genero
- FROM Persona
- WHERE provincia = 'Puno';
La sentencia IIF fue reemplazada con la expresión CASE (líneas 3 a la 7), ésta si es una consulta que puede entender el motor SQL Server.
Para quienes hemos aprovechado al máximo la sentencias IF o IIF podría resultar un poco incomodo tener que cambiar el modo en que escribimos las consultas. Sin embargo CASE es uno de los comandos más poderosos en el lenguaje Transact-SQL. En contraste con sentencias IF IIF, por su puesto!... por que principalmente con IF, IIF sólo puede evaluarse una expresión lógica a la vez, esta limitación no existe para el la sentencia CASE. Por que no hacemos una prueba?, por ejemplo, con la expresión IIF sería un poco engorroso escribir una expresión equivalente a:
- Code: Seleccionar todo
- SELECT
- idpersona, paterno, materno, nombres,
- CASE provincia
- WHEN 'Trujillo'
- THEN 'Norte'
- WHEN 'Piura'
- THEN 'Norte'
- WHEN 'Arequipa'
- THEN 'Sur'
- WHEN 'Puno'
- THEN 'Sun'
- ELSE 'Sin clasificar'
- AS Region
- FROM Persona
Cuando ustedes se familiaricen con CASE, verán lo útil que es.
Tags: bases de datos
Otros Artículos en esta sección
-
En SQL Server encontramos varios tipos de datos, dentro de ellos esta nvarchar, los que estamos acostumbrados a tipo de datos varchar nos hacemos esa pregunta.Hemos preparado una tabla de comparación para que vean las diferencias principales que hay entre los dos gestores de base de datos populares MySQL y SQL Server

foro de Bases de datos »
