DECODE EN SQL SERVER

Hola compañeros javeros les escribo desde el ratonero, bueno si ustedes son de los que aprendieron ORACLE y después SQL SERVER sabrán que la función DECODE es muy útil en ORACLE, pero existe su homónimo en SQL SERVER ?, la respuesta es un rotundo SI/NO :S.

Y eso, sencillo en SQL SERVER no existe DECODE como tal pero podemos utilizar CASE que funciona de la misma forma del DECODE.

Y eso como se realiza? Bueno a continuación les pongo un ejemplo y más adelante explico la sintaxis.

SELECT nombre, edad, SEXO = CASE sex

WHEN 'h' THEN 'Hombre'

WHEN 'm' THEN 'Mujer '

ELSE 'No encontrado'

END

FROM persona

El resultado de este QUERY sería algo parecido a esto:

nombre

edad

SEXO

Juan Pérez

23

Hombre

Juanita Pérez

20

Mujer

Pepe pecas

19

Hombre

Teresita del niño de Jesús

27

Mujer

NULL

0

No entiendo

Ahora para los que tienen ingles técnico el ejemplo anterior no tiene ningún problema pero a los que decimos GACHAR NAME …….xD, explicare de la manera más sencilla.

SEXO = CASE sex

WHEN 'h' THEN 'Hombre'

WHEN 'm' THEN 'Mujer '

ELSE 'No encontrado'

END

  • · CASE: CASO, para este caso ponemos el atributo con el cual comparamos de nuestra consulta el atributo se llama sex y selo asignamos a una variable de nombre SEXO
  • · WHEN: CUANDO, después de esta palabra reservada siempre ira la expresión con la que queremos comparar para el ejemplo fue h y m.
  • · THEN: ENTONCES, adelante de esta palabra pondremos la expresión o dato que queremos mostrar siempre que se cumpla el WHEN, para nuestro ejemplo fue: Hombre cuando fuera ‘h’ y Mujer cuando fuera ‘m’
  • · ELSE: SOBRANDO, si no se cumple ninguno de los dos casos, si nuestra consulta en 1 fila nos devuelve algo diferente de h o m entonces pondrá No encontrado
  • · END: FIN, es muy importante poner esta última palabra reservada ya aunque no importa si toda nuestra sintaxis esta correcta si no se pone al final el END marcara un error rotundo.

Ahora no es necesario agregarlo siempre a una variable ni poner ELSE, este mismo ejemplo puede quedar de la siguiente manera:

SELECT nombre, edad, CASE sex

WHEN 'h' THEN 'Hombre'

WHEN 'm' THEN 'Mujer '

END

FROM persona

Eso es todo por el momento cuídense y nos vemos en próximos post. SALU2.

Post a Comment

Artículo Anterior Artículo Siguiente