tipo asi:
$query = "select datos1,datos2 FROM tabla ORDER BY IF (datos1)datos1 ELSE(datos2)datos2 desc";
bueno es un poco a lo rapido :D pero es que no se si se puede ni como ^^u gracias

| |||
ua pregunta(sobre consulta SQL) bueno mi pregunta es,se puede usar una if en una consulta SQL? tipo asi: $query = "select datos1,datos2 FROM tabla ORDER BY IF (datos1)datos1 ELSE(datos2)datos2 desc"; bueno es un poco a lo rapido :D pero es que no se si se puede ni como ^^u gracias ![]() |
| |||
Depende de que base de datos esté utilizando, en access sería de la siguiente forma: Dentro del lenguaje SQL - IIf (Comparacion, Resultado si true, Resultado si false) En el generador de expresiones - IIf (Comparacion; Resultado si true; Resultado si false) En SQL Server sería de la forma siguiente: CASE WHEN Comparación THEN Resultado si true ELSE Resultado si false END (en SQL Server OJO con los tipos de datos, puede darte errores fácilmente) |
| |||
tblFacturas: IdFactura; NoFactura; FechaFactura.... SELECT *, CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 'Ejercicio Actual' ELSE 'Ejercicios Anteriores' END AS Ejercicio FROM tblFacturas ORDER BY CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 0 ELSE 1 END, FechaFactura En este ejemplo, tienes una tabla de facturas con la facha de factura y quieres: 1- Un campo donde te ponga 'Ejercicio Actual' si el año de la fecha de factura es el año en curso o 'Ejercicios Anteriores' la fecha de factura es de años anteriores:Creo que con este ejemplo lo verás bastante claro.CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 'Ejercicio Actual' ELSE 'Ejercicios Anteriores' END AS Ejercicio2- Quieres que te ordene por fecha de factura de menor a mayor pero primero las del año en curso:ORDER BY CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 0 ELSE 1 END, FechaFactura Última edición por Atzeneta; 31/08/2004 a las 04:18 |