Funciones de selección IIF y CHOOSE en Microsoft Sql-Server

Escrito por Administrator. Publicado en tecnología en la vida diaria

FUNCIONES DE SELECCIÓN EN SQL-SERVER

Microsoft SQL-Server 2012 introdujo dos funciones que existían desde mucho antes en otros motores SQL, y que son realmente poderosas y prácticas.

Se trata del IF inmediato (IIF) y la función de selección CHOOSE.

Ambas funciones pueden expresarse mediante el uso de la función CASE, pero el código es más compacto y más claro al usar las funciones.

Por ejemplo, esta sentencia:

CASE WHEN @myvar=1 THEN ‘Verdadero’ ELSE ‘Falso’ END

Se puede sustituir por esta versión más clara y compacta

IIF(@myvar=1,’Verdadero’,’Falso’)

La función CHOOSE es posiblemente más práctica, porque puede simplificar sentencias CASE mucho más complejas.  Veamos este ejemplo:

SELECT CHOOSE(DATEPART(month, getdate()), 'Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic')

Antes de disponer de esta función, tendríamos que haber creado una sentencia mucho más larga:

SELECT CASE DATEPART(month, getdate())
WHEN 1 THEN 'Ene'
WHEN 2 THEN 'Feb'
WHEN 3 THEN 'Mar'
WHEN 4 THEN 'Abr'
WHEN 5 THEN 'May'
WHEN 6 THEN 'Jun'
WHEN 7 THEN 'Jul'
WHEN 8 THEN 'Ago'
WHEN 9 THEN 'Sep'
WHEN 10 THEN 'Oct'
WHEN 11 THEN 'Nov'
WHEN 12 THEN 'Dic'
ELSE '' END


TIP EXTRA:

Antes de disponer de la función CHOOSE, una sentencia CASE como la anterior se podía simplificar usando la función SUBSTRING, siempre y cuando la longitud de las hileras del resultado fuera siempre el mismo, así:

SELECT SUBSTRING('EneFebMarAbrMayJunJulAgoSepOctNovDic', DATEPART(month, getdate()) *3 -2, 3)


Si este artículo ha sido de su agrado recomiéndenos con sus amigos, visite nuestro sitio en Facebook y no olvide presionar “Me Gusta”.

¿Hay temas que le interesen o sobre los que desee conocer más? Déjenos sus comentarios.

  • Paquetes WEB
  • Aplicaciones
  • Apoyo Técnico
  • Sistemas de Pesaje