Advertisement
GastonPalazzo

CASE

Nov 5th, 2020 (edited)
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.62 KB | None | 0 0
  1. -- BD MARCAS
  2.     -- 1
  3. SELECT nombre AS 'nombre_de_producto', precio AS 'precio_de_producto',
  4.     CASE
  5.         WHEN precio > 10000 THEN 'Muy costoso'
  6.         WHEN precio > 5000 THEN 'Costoso'
  7.         ELSE 'Normal'
  8.     END AS 'clasificacion_por_precio'
  9. FROM productos
  10. ORDER BY precio;
  11.     -- 2
  12. SELECT nombre AS 'nombre_de_producto', puntuacion AS 'puntuacion_de_producto',
  13.     CASE
  14.         WHEN puntuacion > 8 THEN 'MUY BUENO'
  15.         WHEN puntuacion > 6 THEN 'BUENO'
  16.         ELSE 'REGULAR'
  17.     END AS 'clasificacion_por_puntuacion'
  18. FROM productos
  19. ORDER BY puntuacion;
  20. -- BD HOSPITAL
  21.     -- 3
  22. SELECT apellido, salario, oficio, Fecha_Alt AS 'fecha_de_alta',
  23.     CASE
  24.         WHEN Dept_No != 10 AND Dept_No != 30 THEN 'mantener'
  25.         ELSE 'eliminar'
  26.     END AS 'reestructuracion'  
  27. FROM emp;
  28.     -- 4
  29. (SELECT apellido,
  30.     CASE
  31.         WHEN Salario < 100000 THEN 'SUBIR SUELDO'
  32.         WHEN Salario > 250000 THEN 'BAJAR SUELDO'
  33.         ELSE 'MANTENER'
  34.     END AS 'recorte_salarial'
  35.  FROM emp)
  36. UNION
  37. (SELECT apellido,
  38.     CASE
  39.         WHEN Salario < 100000 THEN 'SUBIR SUELDO'
  40.         WHEN Salario > 250000 THEN 'BAJAR SUELDO'
  41.         ELSE 'MANTENER'
  42.     END AS 'recorte_salarial'
  43.  FROM plantilla)
  44. ORDER BY apellido;
  45.     -- 5
  46. SELECT apellido,
  47.     CASE
  48.         WHEN T = 'T' THEN 'TARDE'
  49.         WHEN T = 'N' THEN 'NOCHE'
  50.         ELSE 'OTROS'
  51.     END AS turno_laboral
  52. FROM plantilla
  53. ORDER BY Apellido;
  54.     -- 6
  55. SELECT apellido, direccion, ((CAST(RIGHT(fecha_nac, 2) AS INT) DIV 10)*10) AS 'decada_de_naciemiento',
  56.     CASE
  57.         WHEN S = 'M' THEN 'MASCULINO'
  58.         ELSE 'FEMENINO'
  59.     END sexo
  60. FROM enfermo;
  61.     -- 7
  62. SELECT DISTINCT apellido, salario, oficio, emp.Dept_No AS 'nΒΊ_de_dpto', comision,
  63.     CASE
  64.         WHEN emp.Dept_No = NULL THEN 'NO TIENE'
  65.         ELSE 'TIENE'
  66.     END AS 'disponibilidad_de_dpto',
  67.     CASE
  68.         WHEN emp.Comision > 0 THEN 'SI'
  69.         ELSE 'NO'
  70.     END AS 'tiene_comision'
  71. FROM emp
  72. LEFT JOIN dept ON emp.Dept_No IN (SELECT dept.Dept_No FROM dept)
  73. ORDER BY apellido;
  74.     -- 8
  75. SELECT hospital.Nombre AS 'hospital', sala.Nombre AS 'sala', sala.Num_Cama AS 'nΒΊ_de_camas',
  76.     CASE
  77.         WHEN sala.Num_Cama < 1 THEN '0'
  78.         WHEN sala.Num_Cama > 90 THEN 'MUCHAS CAMAS'
  79.         WHEN sala.Num_Cama > 40 THEN 'BUEN NUMERO DE CAMAS'
  80.         ELSE 'POCAS'
  81.     END AS 'cant_de_camas'
  82. FROM hospital LEFT JOIN sala ON hospital.Hospital_Cod = sala.Hospital_Cod;
  83. -- BD CONTACTOS
  84.     -- 9
  85. SELECT DISTINCT CONCAT(nombre, ' ', apellidos) AS 'Empleado',
  86.     CASE
  87.         WHEN localidad = 'Barcelona' THEN 'SI'
  88.         ELSE 'NO'
  89.     END AS 'cambiaria_de_localidad'
  90. FROM contactos
  91. ORDER BY apellidos;
  92.     -- 10
  93. SELECT DISTINCT CONCAT(nombre, ' ', apellidos) AS 'nom_y_ape',
  94.     CASE
  95.         WHEN sexo = 'M' THEN 'SI'
  96.         ELSE 'NO'
  97.     END AS 'es_hombre',
  98.     CASE
  99.         WHEN altura > 1.75 THEN 'SI'
  100.         ELSE 'NO'
  101.     END AS 'es_alt@'
  102. FROM contactos;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement