¿Existe la posibilidad de ordenar el resultado por una cláusula ORDER
que contiene una expresión, algo así comoSQL Server 2005 ORDER BY con una expresión
SELECT colX0 FROM tbp_name ORDER BY (colX1 IS NOT NULL)
o también una expresión más compleja?
ACTUALIZACIÓN:
Mientras tanto he encontrado una posibilidad de resolver el problema anterior:
ORDER BY (case WHEN colX1 IS NULL THEN 1 ELSE 0 END) ASC
sin embargo, la pregunta sigue siendo, si hay una posibilidad de ordenar directa por una expresión.
El motivo por el que su primer intento no funciona es que SQL Server necesita que convierta su expresión booleana en un tipo de datos que pueda ordenar. Si trataste de usar esa expresión 'colX1 IS NOT NULL' en una declaración SELECT, tampoco funcionaría. Como ha encontrado en su segunda declaración, puede ORDER BY una expresión, siempre y cuando sea válida y pueda colocarla en una declaración SELECT. – Rory
@Rory: Fue un mal ejemplo y esto me llevó en una dirección equivocada (porque se trata de booleanos). Tu comentario debe ser la respuesta aceptada, responde mi pregunta principal. Aceptaré la respuesta de gbn, porque muestra por qué mi ejemplo (y mi primer intento) no fue muy bueno. Gracias. – HCL