Академический Документы
Профессиональный Документы
Культура Документы
autor varchar(30),
editorial varchar(20),
precio decimal(5,2),
cantidad tinyint,
else
titulo
Alicia en el pais de las
maravillas
if exists (select * from libros where editorial='Emece')
begin
end
else
libros
actualizados
else
else
No hay registros
eliminados
if object_id('alumnos') is not null
nombre varchar(40),
nota tinyint,
case nota
end
from alumnos
not
nombre condicion
a
promocionad
Ana Acosta 8
o
Carlos Caseres 4 regular
Federico
2 libre
Fuentes
Gaston Guzman 3 libre
Hector Herrero 5 regular
promocionad
Luis Luna 10
o
promocionad
Marcela Morales 7
o
Marcela Morales
case
end
from alumnos
not
nombre condicion
a
promocionad
Ana Acosta 8
o
Carlos Caseres 4 regular
Federico
2 libre
Fuentes
Gaston Guzman 3 libre
Hector Herrero 5 regular
promocionad
Luis Luna 10
o
promocionad
Marcela Morales 7
o
Marcela Morales sin nota
not condicio
nombre
a n
Ana Acosta 8
Carlos Caseres 4
Federico
2
Fuentes
Gaston Guzman 3
Hector Herrero 5
Luis Luna 10
Marcela Morales 7
Marcela Morales
case
end
not
nombre condicion
a
promocionad
Ana Acosta 8
o
Carlos Caseres 4 regular
Federico
2 libre
Fuentes
Gaston Guzman 3 libre
Hector Herrero 5 regular
promocionad
Luis Luna 10
o
Marcela Morales 7 regular
Marcela Morales
end
from alumnos
group by condicion
order by cantidad
cantida
condicion resultado
d
1 sin datos
libre 2 repitentes
promocionad no rinden
2
o final
regular 3 rinden final
drop table empleados;
execute pa_empleados_aumentarsueldo(10,20);
execute pa_empleados_aumentarsueldo(8,10);
execute pa_empleados_aumentarsueldo;
execute pa_empleados_ingresar('32222222','10/10/2007');
select *from empleados;
execute pa_empleado_eliminar('30000000');
case VALORACOMPARAR
when VALOR1 then RESULTADO1
when VALOR2 then RESULTADO2
...
else RESULTADO3
end
Por cada valor hay un "when" y un "then"; si encuentra un valor coincidente en algún
"when" ejecuta el "then" correspondiente a ese "when", si no encuentra ninguna
coincidencia, se ejecuta el "else"; si no hay parte "else" retorna "null". Finalmente se
coloca "end" para indicar que el "case" ha finalizado.
Un profesor guarda las notas de sus alumnos de un curso en una tabla llamada "alumnos"
que consta de los siguientes campos:
Queremos mostrar los nombres, notas de los alumnos y en una columna extra llamada
"resultado" empleamos un case que testee la nota y muestre un mensaje diferente si en
dicho campo hay un valor:
- 0, 1, 2 ó 3: 'libre';
- 4, 5 ó 6: 'regular';
- 7, 8, 9 ó 10: 'promocionado';
Esta es la sentencia:
Note que cada "where" compara un valor puntual, por ello los valores devueltos son
iguales para algunos casos. Note que como omitimos la parte "else", en caso que el valor
no encuentre coincidencia con ninguno valor "when", retorna "null".
case
when VALORACOMPARAR OPERADOR VALOR1 then RESULTADO1
when VALORACOMPARAR OPERADOR VALOR2 then RESULTADO2
...
else RESULTADO3
end
Mostramos los nombres de los alumnos y en una columna extra llamada "resultado"
empleamos un case que teste si la nota es menor a 4, está entre 4 y 7 o supera el 7:
Puede utilizar una expresión "case" en cualquier lugar en el que pueda utilizar una
expresión.