all after sql sql-server

after - ¿Cómo usar order by with union all in sql?



union all select sql server (4)

No es una respuesta directa de OP, pero pensé que iba a responder aquí al mensaje ERROR del OP, ¡lo que podría apuntar en otra dirección completamente!

Todas estas respuestas se refieren a una ORDEN GENERAL POR una vez que se ha recuperado el conjunto de registros y se ordena el lote.

¿Qué sucede si usted quiere HACER UN PEDIDO por cada porción de la UNIÓN de manera independiente, y aun así tenerlos "unidos" en el mismo SELECCIONAR?

SELECT pass1.* FROM (SELECT TOP 1000 tblA.ID, tblA.CustomerName FROM TABLE_A AS tblA ORDER BY 2) AS pass1 UNION ALL SELECT pass2.* FROM (SELECT TOP 1000 tblB.ID, tblB.CustomerName FROM TABLE_B AS tblB ORDER BY 2) AS pass2

Tenga en cuenta que TOP 1000 es un número arbitrario. Use un número lo suficientemente grande para capturar todos los datos que necesita.

Intenté la consulta sql dada a continuación:

SELECT * FROM (SELECT * FROM TABLE_A ORDER BY COLUMN_1)DUMMY_TABLE UNION ALL SELECT * FROM TABLE_B

Resulta en el siguiente error:

La cláusula ORDER BY no es válida en vistas, funciones en línea, tablas derivadas, subconsultas y expresiones de tablas comunes, a menos que también se especifique TOP o FOR XML.

Necesito usar el orden en union todo. ¿Cómo logro esto?


Realmente no necesitas tener paréntesis. Puede ordenar directamente:

SELECT *, 1 AS RN FROM TABLE_A UNION ALL SELECT *, 2 AS RN FROM TABLE_B ORDER BY RN, COLUMN_1


SELECT * FROM ( SELECT * FROM TABLE_A UNION ALL SELECT * FROM TABLE_B ) dum -- ORDER BY .....

pero si desea tener todos los registros de la Table_A en la parte superior de la lista de resultados, puede agregar el valor definido por el usuario que puede usar para ordenar,

SELECT * FROM ( SELECT *, 1 sortby FROM TABLE_A UNION ALL SELECT *, 2 sortby FROM TABLE_B ) dum ORDER BY sortby


Select ''Shambhu'' as ShambhuNewsFeed,Note as [News Fedd],NotificationId from Notification with(nolock) where DesignationId=@Designation Union All Select ''Shambhu'' as ShambhuNewsFeed,Note as [Notification],NotificationId from Notification with(nolock) where DesignationId=@Designation order by NotificationId desc