est-il possible de commander la première enquête et de garder les lignes retournées comme d'abord et ne commandez pas la deuxième enquête. (Si cela fait du sens)
Un exemple de mon enquête actuelle est le suivant: P>
SELECT
*
FROM
Devices
WHERE
Live = 'true'
AND Category = 'apple'
ORDER BY
ListOrder
UNION
SELECT
*
FROM
Devices
WHERE
DeviceLive = 'true'
4 Réponses :
Vous auriez besoin d'introduire une clé de tri artificielle. Quelque chose comme:
C'est comme ça que j'ai accompli dans le passé
Travaillé comme un régal, merci Joe!
Bonjour, je n'avais pas besoin de créer une clé de tri artificielle, je viens de m'assurer que chaque table avait la même nom de la colonne que je voulais trier. Dans mon cas, le nom de la colonne était "ordre". Donc, j'ai fait: SELECT *, COMMANDEZ AS URDODER DE TABLE 1 SELECT *, COMMANDEZ COMMUDER DE TABLEAU 2 COMMANDE PAR URONDER
Vous pouvez simuler
SELECT col1, col2 ... FROM ( SELECT 1 fake_order, col1, col2 ... FROM Devices WHERE Live ='true' AND Category='apple' ORDER BY ListOrder UNION ALL SELECT 2, col1, col2 ... FROM Devices WHERE DeviceLive ='true' ) AS T ORDER BY fake_order
Je sais que c'est vieux, mais pour être complet (et je note que vous dites que ceci est non testé), vous devez nommer la requête interne pour que cela fonctionne.
@Tomheard - SQL Syntaxe permet au comme code> en option, afin de la lisibilité, je le laisserai.
Union code> a une fonction de déplication implicite. Cela signifie qu'un effet secondaire de l'utilisation de ce fait que tout est préparé ensemble comme il est trié pour que cela se produise. Cela signifie également (généralement, mais pas toujours) signifie que vous obtenez une sortie triée (voir paragraphe suivant). P>
Union Tout code> supprime cela, mais il reste-t-il toujours la mise en garde qui sortit d'une requête sans ordre explicite par code> n'a pas de commande garantie. Cela a été couvert par une autre réponse, mais je pensais que cela valait la peine de souligner pourquoi cela compte. P>
Merci, je cherchais une raison pour laquelle mon plan d'exécution faisait une sorte. Cela répond à cela et mon problème de commande étrange.
J'ai eu ma réponse de Joe Stefanelli, mais j'ai modifié un peu:
Bonjour, je n'avais pas besoin de faire une clé de tri artificielle, je viens de m'assurer que chaque table avait le même nom de la colonne que je voulait trier. Dans mon cas, le nom de la colonne était "ordre". Donc, j'ai fait: p>