![]() |
¿¿¿select... if... from.... [where...]??? hola, buenas a todos: he visto por ahi, algunas consultas de gente preguntando sus dudas, y vi una (bastante complicada por cierto) en la que dentro del select habia un if, es decir, "SELECT[campos] IF(????] [masCampos] FROM [tabla]......" hace unos dias que estoy buscando como se hace este if (su sintaxis y funcionamiento) dentro del select, y al verlo aki en una consulta de otro forero, keria preguntaros si alguien me puede explicar como funciona, su sintaxis y todo eso. tb kerria saber donde lo puedo utilizar: en sql server, oracle, mysql.... muchas gracias por adelantado. un saludo |
Re: ¿¿¿select... if... from.... [where...]??? Hola el if hasta donde yo conozco no se puede en un Select pero lo puedes hacer de la siguiente form usando el Case, un ejemplo: USE AdventureWorks; GO SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN 'Mountain' WHEN 'T' THEN 'Touring' WHEN 'S' THEN 'Other sale items' ELSE 'Not for sale' END, Name FROM Production.Product ORDER BY ProductNumber; GO Y se puede utilizar en MySQL, SQL Server, Posgress. Espero haber resuelto tu duda lobo. |
Re: ¿¿¿select... if... from.... [where...]??? os dejo el enlace de la pagina donde lo he visto http://www.forosdelweb.com/f86/consulta-sql-complicada-576097/ fijaros bien ke hay dos if dentro del select |
Re: ¿¿¿select... if... from.... [where...]??? Hola, Pikeres, En MySQL el IF como función de control de flujo se puede hacer en el SELECT. ejemplo 1) te muestra el valor del campo1, y, además, si el valor del campo1 es mayor que 3, te muestra el texto primero y si no el segundo: SELECT campo1, IF (campo1 >3, "es mayor que tres", "es menor que tres") AS resultado FROM nombretabla. Naturalmente, también puedes mostrar campos: ejemplo2) si el valor del campo1 es mayor que 3, te muestra el campo1 y si no el campo2 SELECT IF(campo1 > 3, campo1, campo2) AS campocondicionado FROM TABLA El IF está pensado para una condición con dos opciones, aunque se puede anidar. Pero para hacer eso mejor, es decir, elegir entre varias opciones, debes usar el case when... then, que también puede usarse en el select, y cuya estructura es la que te ha mostrado GIANCO321. En este ejemplo lo que hacemos es ver el valor numérico del mes de un campo fecha, y según el valor, mostrar el nombre del mes en español. Aquí lo tienes en un select SELECT CASE WHEN MONTH(campofecha) = 1 THEN "enero" WHEN MONTH(campofecha) = 2 THEN "febrero" WHEN MONTH(campofecha) = 3 THEN "marzo" WHEN MONTH(campofecha) = 4 THEN "abril" WHEN MONTH(campofecha) = 5 THEN "mayo" WHEN MONTH(campofecha) = 6 THEN "junio" WHEN MONTH(campofecha) = 7 THEN "julio" WHEN MONTH(campofecha) = 8 THEN "agosto" WHEN MONTH(campofecha) = 9 THEN "septiembre" WHEN MONTH(campofecha) = 10 THEN "octubre" WHEN MONTH(campofecha) = 11 THEN "noviembre" WHEN MONTH(campofecha) = 12 THEN "diciembre" ELSE "esto no es un mes" END AS MESespañol from nombretabla Sobre estas funciones de control de flujo, mira este enlace: http://dev.mysql.com/doc/refman/5.0/...functions.html |
Re: ¿¿¿select... if... from.... [where...]??? MUCHAS GRACIAS JURENA Y GIANCO!!!! :-D una ultima pregunta, ese IF se puede utilizar en mysql, oracle y sql server (son los gestores que he utilizado, y se ke algunos de ellos cambian algunas cosillas) un saludo :adios: |
Re: ¿¿¿select... if... from.... [where...]??? Pikeres, Para SQL, mira lo que dice BrujoNic en este post http://www.forosdelweb.com/f86/if-dentro-sql-477665/ Pero para tener un mejor conocimiento, debes recurrir a los manuales de referencia oficiales. Yo sólo puedo ofrecerte el de MySQL http://dev.mysql.com/doc/refman/5.0/es/index.html y este otro para MySqL, que a mí me gusta especialmente http://mysql.conclase.net/curso/index.php |
| La zona horaria es GMT -6. Ahora son las 04:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.