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:CASE WHEN DATEPART(yyyy, FechaFactura) = DATEPART(yyyy, GetDate()) THEN 'Ejercicio Actual' ELSE 'Ejercicios Anteriores' END AS Ejercicio
2- 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
Creo que con este ejemplo lo verás bastante claro.