A veces como programadores nos vemos en
la tesitura de lanzar una única consulta sql en la que en función del un dato recibimos
tenemos que generar otro distinto. Para ello tenemos la expresión CASE.
CASE funciona como un if dentro de una
consulta sql en la que podemos indicar un valor de salida en caso de que la
expresión sea verdadera y otra en caso que sea falsa.
Como ejemplo vamos a ver cómo generar un
código en base a la primera letra del sexo y las dos primeras letra del nombre,
apellido1 y apellido2 cambiando el código generado en base al valor del sexo.
Tabla inicial
indice
|
nombre
|
ape1
|
ape2
|
sexo
|
1
|
lisensiado
|
andrade
|
garcia
|
Hombre
|
2
|
fedora
|
maroto
|
distro
|
Mujer
|
3
|
linux
|
perez
|
soldado
|
Hombre
|
4
|
vista
|
windows
|
teclada
|
Mujer
|
Consulta case:
select indice
(case when
substr(sexo,1,1)='H' then '00' case when
substr(sexo,1,1)='M' then '01' end)
|| substr(ape1,1,2)
|| substr(ape1,1,2)
|| substr(ape1,1,2)
as
codigonuevo
from personal;
Resultado Final
Indice | codigonuevo |
1
|
00lianga |
2
|
11femadi |
3
|
00lipeso |
4
|
11viwite |
No hay comentarios:
Publicar un comentario