Tengo una base de datos con un campo "FECHA_ALTA" de tipo Date.
Necesitos buscar los 10 más actuales
(los la fecha más actual del campo "FECHA_ALTA").
¿Como sería la query?
select * from candidatos where "NOMBRE" ilike '%jose%' AND .... ;
| |||
10 registros más actuales Tengo una base de datos con un campo "FECHA_ALTA" de tipo Date. Necesitos buscar los 10 más actuales (los la fecha más actual del campo "FECHA_ALTA"). ¿Como sería la query? select * from candidatos where "NOMBRE" ilike '%jose%' AND .... ; |
| |||
Respuesta: 10 registros más actuales Perdón: SELECT TOP 10 (nombres de los campos separados por comas) FROM CANDIDATOS WHERE nombre LIKE '%jose%' ORDER BY FECHA_ALTA DESC |
| |||
Respuesta: 10 registros más actuales No me funciona y he probado con todo lo que se me ocurre, me da error en el 10, lo he puesto con comas comillas y nada... Haber si ves el error... Muchas gracias. |
| |||
Respuesta: 10 registros más actuales Postea tanto la sentencia que has probado como la descripción del error, por favor. ¿Qué motor de base de datos estás usando? |
| |||
Respuesta: 10 registros más actuales SELECT TOP 10 "NOMBRE" FROM candidatos WHERE nombre LIKE '%jose%' ORDER BY FECHA_ALTA DESC; Uso pgAdminIII ERROR: syntax error at or near "10" LINE 1: SELECT TOP 10 "NOMBRE" FROM candidatos WHERE nombre LIKE '%j... ^ ********** Error ********** ERROR: syntax error at or near "10" He provado poniendo delante en medio top con comillas sin ellas...todo lo que se me ha ocurrido y nada... |
| |||
Respuesta: 10 registros más actuales Hum...entonces quizá sea del motor de base de datos, ya que la sentencia en esta forma: SELECT TOP 10 NOMBRE FROM candidatos WHERE nombre LIKE '%jose%' ORDER BY FECHA_ALTA DESC Funciona perfectamente en SQLServer. Desconozco si los nombres de campos a nivel individual se especifican de manera diferente en pgAdmin, porque no lo he utilizado nunca. Pero lo que sí te aconsejo (no estoy seguro de haber entendido si lo has hecho o no) es que hagas dos cosas: 1) Probar la sentencia, tal y como me la has dicho, sin las comillas en "NOMBRE" 2) Revisar la documentación de pgAdmin para conocer la sintaxis de especificación de nombres de campos. Se me ocurren algunas posibles causas para que esa sentencia no funcione: a) Que los nombres de campos en pgAdmin sean case sensitive. Es decir, que las mayúsculas y minúsculas se tomen en cuenta a la hora de ejecutar la sentencia, con lo cual puede que el campo se llame Nombre o nombre y, al poner el identificador del campo totalmente en mayúsculas, el motor no te lo reconozca b) Que tengas que utilizar algún delimitador para especificar los identificadores de los campos, como unos corchetes (y tuvieras que escribir SELECT TOP 10 [Nombre] ....) c) Que pgAdmin no entienda la palabra reservada TOP, con lo cual deberías revisar la documentación en busca de alguna otra keyword o mecanismo equivalente. Pero, sin duda, en primer lugar, probaría a ejecutar, si no lo has hecho, la sentencia de este modo: SELECT TOP 10 NOMBRE FROM candidatos WHERE nombre LIKE '%jose%' ORDER BY FECHA_ALTA DESC; Espero haberte sido de ayuda. P.D: Cuando hablo de "identificadores" de campos, hablo de sus nombres, pero no he querido emplear el término "nombre" para no liarte con la explicación. |
| |||
Respuesta: 10 registros más actuales Claro en sqlserver pero esto es postgres... Es un foro de postgres y eso no funciona con postgres... Haber si alguien lo sabe hacer para postgres... |
| |||
Respuesta: 10 registros más actuales michael_045 da error en la primera línea... La respuesta es : SELECT * FROM candidatos WHERE "FECHA_ALTA" is not null ORDER BY "FECHA_ALTA" DESC LIMIT 10; Muchas gracias a los dos por vuestro interes. Un saludo. |
| |||
Respuesta: 10 registros más actuales Cita: Ups, no me di cuenta de lo del foro, perdona. Al menos, veo que la idea que te dí sí te sirvió de orientación :)Buena suerte para el futuro |
| |||
Respuesta: 10 registros más actuales En la select que te han dado quita TOP (SQLServer) Añade LIMIT 10 al final.
Código:
SELECT * FROM CANDIDATOS WHERE nombre LIKE '%jose%' ORDER BY FECHA_ALTA DESC limit 10 |