English version (when available)
select colegiado,apellidos,nombre,telefono from trabajador where ciudad in ('Simpson','Burgos','Ourense');Solución alternativa:select colegiado,apellidos,nombre,telefono from trabajador where ciudad = 'Simpson' or ciudad = 'Burgos' or ciudad = 'Ourense';
select colegiado,apellidos,nombre,telefono from trabajador where ciudad in ('Simpson','Burgos','Ourense') and colegiado in (select colegiado from medico);Solución alternativa:Al utilizar una subconsulta, el filtro consiste en dar por buenos los números de colegiado que se pueden encontrar en la tabla MEDICO. Es una forma eficiente de hacer este tipo de consultas en las que una de las tablas solo se usa para filtrar, no para mostrar resultados de sus columnas.select t.colegiado,apellidos,nombre,telefono from trabajador t, medico m where (ciudad = 'Simpson' or ciudad = 'Burgos' or ciudad = 'Ourense') and t.colegiado = m.colegiado
Fíjate en los paréntesis de los filtros de fila de la solución alternativa.
select colegiado,apellidos,nombre,telefono from trabajador where ciudad in ('Simpson','Burgos','Ourense') and colegiado in (select colegiado from medico) and nombre NOT in ('Nora','AINHOA','ALBA');
select concat(apellidos,", ",nombre) NomCompleto from trabajador where ciudad = 'Elx/Elche'
select apellidos,nombre,if(ciudad='Alicante','Alacant',ciudad) from trabajador where colegiado in (select colegiado from medico)
select concat(left(apellidos,3),left(nombre,3),right(telefono,3)) código from trabajador where colegiado in (select colegiado from medico)
select sip,fecha_nacimiento from paciente order by fecha_nacimiento desc;
select sip,day(fecha_nacimiento) día from paciente order by fecha_nacimiento desc;DAYOFMONTH() obtiene el mismo resultado.
select sip,month(fecha_nacimiento) mes, day(fecha_nacimiento) día from paciente order by fecha_nacimiento desc;
select sip, year(fecha_nacimiento) año, month(fecha_nacimiento) mes, day(fecha_nacimiento) día from paciente order by fecha_nacimiento desc;
select sip,fecha_nacimiento from paciente where year(fecha_nacimiento) = 2013 order by fecha_nacimiento desc;
select sip,date_format(fecha_nacimiento,'%d/%m/%Y') nacido from paciente where year(fecha_nacimiento) = 2013 order by fecha_nacimiento desc;
select sip,date_format(fecha_nacimiento,'%d de %m de %Y') nacido from paciente where year(fecha_nacimiento) = 2013 order by fecha_nacimiento desc;
select sip,date_format(fecha_nacimiento,'%d de %M de %Y') nacido from paciente where year(fecha_nacimiento) = 2013 order by fecha_nacimiento desc;
select sip,fecha_nacimiento,datediff('2016-09-01',fecha_nacimiento) días from paciente where year(fecha_nacimiento) = 2013 order by fecha_nacimiento desc;
select sip,fecha_nacimiento,datediff('2016-09-01',fecha_nacimiento) días from paciente where year(fecha_nacimiento) = 2013 order by datediff('2016-09-01',fecha_nacimiento) desc;
select sip,fecha_nacimiento from paciente where datediff('2016-09-01',fecha_nacimiento) between 900 and 1000;
select sip,weekofyear(fecha_nacimiento) semana from paciente where datediff('2016-09-01',fecha_nacimiento) between 900 and 1000 order by 2;Order by permite utilizar el orden de las columnas. Si no, order by weekofyear(fecha_nacimiento).
select sip, case dayofweek(fecha_nacimiento) when 2 then 'Lunes' when 3 then 'Miércoles' when 4 then 'Miércoles' when 5 then 'Jueves' when 6 then 'Viernes' when 7 then 'Sábado' when 1 then 'Domingo' end diasemana from paciente where year(fecha_nacimiento) = 2014 and month(fecha_nacimiento) = 3;Dayofweek devuelve el número de día de la semana comenzando por 1=Sunday.
CASE valor WHEN valoresperado THEN resultado es una instrucción de control de flujo que compara un valor con una lista de valores esperados, y devuelve el resultado definido para cada uno de esos valores esperados.
SELECT p.nombre, p.apellidos, DAY(p.fecha_nacimiento) día, MONTHNAME(p.fecha_nacimiento) mes, YEAR(NOW())-YEAR(p.fecha_nacimiento) años from paciente p WHERE month(p.fecha_nacimiento)=MONTH(NOW());