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.
Publicar un comentario