Título: Sentencia SQL Publicado por: rubcr en 28 Abril 2020, 21:13 pm Buenas a todos.
Tengo un problema con una sentencia, la cual tiene que obtener la latitud y longitud de todas las antenas de la provincias que empiecen por vocal. La selección que tengo es la siguiente: SELECT lat, long FROM antena_telefonicas WHERE provincia LIKE '[aeiou]%'; El problema es que no me devuelve ningún dato, la sentencia no genera ningún error, pero no da datos. El problema creo que está en el LIKE pero no sé cuál es. Espero que alguien sepa ayudarme. Un saludo. Título: Re: Sentencia SQL Publicado por: Carloswaldo en 28 Abril 2020, 21:25 pm ¿De qué motor de base de datos estamos hablando?
Me parece que LIKE no es para expresiones regulares. Al menos no lo es en PostgreSQL donde usaría SIMILAR TO o '~'. Título: Re: Sentencia SQL Publicado por: rubcr en 28 Abril 2020, 21:45 pm ¿De qué motor de base de datos estamos hablando? En HeidiSqlMe parece que LIKE no es para expresiones regulares. Al menos no lo es en PostgreSQL donde usaría SIMILAR TO o '~'. Título: Re: Sentencia SQL Publicado por: EdePC en 28 Abril 2020, 22:02 pm MySQL si permite utilizar Expresiones Regulares (RLIKE), pero si las usas mejor evitar los comodines de LIKE como % y _
Código
MySQL Documentación (versión vieja 5.0, única en español) pág.: 176 http://downloads.mysql.com/docs/refman-5.0-es.a4.pdf SQLServer por su parte ya incluye "expresiones regulares" que en realidad extiende más sus Comodines en LIKE Código
Referencia: https://www.sqlservertutorial.net/sql-server-basics/sql-server-like/ Título: Re: Sentencia SQL Publicado por: rubcr en 28 Abril 2020, 22:13 pm MySQL si permite utilizar Expresiones Regulares (RLIKE), pero si las usas mejor evitar los comodines de LIKE como % y _ Entonces atendiendo a las sentencias que has escrito para mi sería válida la segunda de ellas?Código
MySQL Documentación (versión vieja 5.0, única en español) pág.: 176 http://downloads.mysql.com/docs/refman-5.0-es.a4.pdf SQLServer por su parte ya incluye "expresiones regulares" que en realidad extiende más sus Comodines en LIKE Código
Referencia: https://www.sqlservertutorial.net/sql-server-basics/sql-server-like/ Título: Re: Sentencia SQL Publicado por: Carloswaldo en 28 Abril 2020, 22:18 pm Entonces atendiendo a las sentencias que has escrito para mi sería válida la segunda de ellas? La segunda es para SQL Server. En HeidiSql HeidiSql no es el motor, es un programa para conectarse a un motor de base de datos. Aunque muy probablemente estamos hablando de MySQL (o derivados) entonces. Si es así tendrías que usar la 1era sentencia que mostró EdePC. Título: Re: Sentencia SQL Publicado por: rubcr en 28 Abril 2020, 22:35 pm La segunda es para SQL Server. Y en el caso por ejemplo que fuera que la provincia no empezase ni acabase por consonante como sería la sintaxis?HeidiSql no es el motor, es un programa para conectarse a un motor de base de datos. Aunque muy probablemente estamos hablando de MySQL (o derivados) entonces. Si es así tendrías que usar la 1era sentencia que mostró EdePC. Título: Re: Sentencia SQL Publicado por: EdePC en 29 Abril 2020, 00:23 am Le has dado su leída al PDF que puse antes (pág.: 176)? Tienes que combinar ^ para forzar empezar con, [aeiou] que serán las vocales, luego un .* para decir cualquier otro conjunto de caracteres y finalizar con [aeiou]$ para decir que debe terminar en vocal
Código
Título: Re: Sentencia SQL Publicado por: rubcr en 29 Abril 2020, 01:33 am Le has dado su leída al PDF que puse antes (pág.: 176)? Tienes que combinar ^ para forzar empezar con, [aeiou] que serán las vocales, luego un .* para decir cualquier otro conjunto de caracteres y finalizar con [aeiou]$ para decir que debe terminar en vocal De acuerdo muchas gracias amigo.Código
Ahora tengo cuestión: siendo C el numero de ciudades de la tabla y P el numero de provincias devuelve la diferencia entre los dos valores. Entiendo que hay que hacer una sentencia que cuente el numero de ciudades, el numero de provincias y que se resten los dos valores, pero no entiendo como puedo hacerlo. Título: Re: Sentencia SQL Publicado por: EdePC en 29 Abril 2020, 02:37 am Depende del contexto del ejercicio, como que instrucciones permite utilizar, si se puede usar variables o subconsultas, etc
Teniendo en cuenta que en MySQL es válido hacer una simple resta de 2-5 para obtener -3 (pág.: 596 del PDF): Código
- Se pueden hacer subconsultas como se indica en la pág.: 596 en adelante: Código
- El ABS() es para obtener siempre un número positivo (pág.: 597) Pero dado que tu ejercicio menciona un C y un P, debe hacer uso de algo más, quizá variables (pág.: 510) Título: Re: Sentencia SQL Publicado por: rubcr en 29 Abril 2020, 03:21 am Depende del contexto del ejercicio, como que instrucciones permite utilizar, si se puede usar variables o subconsultas, etc Ciudades y provincias son campos de la tabla antena_telefonicas por lo que el from estaría mal no?Teniendo en cuenta que en MySQL es válido hacer una simple resta de 2-5 para obtener -3 (pág.: 596 del PDF): Código
- Se pueden hacer subconsultas como se indica en la pág.: 596 en adelante: Código
- El ABS() es para obtener siempre un número positivo (pág.: 597) Pero dado que tu ejercicio menciona un C y un P, debe hacer uso de algo más, quizá variables (pág.: 510) |