Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Union et Order By

3 réponses
Avatar
ejc
Bonjour à tous,
j'ai créé cette requête
(select id, nom from table1 order by nom) union all (select id, nom from
table2 order by nom)
pensant pouvoir afficher les noms de la table1 en ordre croissant PUIS les
noms de la table2 en ordre croissant... mais je n'ai pas le résultat
escompté.
Note le champ Id est une clé primaire, numéro auto
Merci d'avance de vos suggestions...
ejc

3 réponses

Avatar
Wendake
ejc a écrit :
Bonjour à tous,
j'ai créé cette requête
(select id, nom from table1 order by nom) union all (select id, nom from
table2 order by nom)
pensant pouvoir afficher les noms de la table1 en ordre croissant PUIS les
noms de la table2 en ordre croissant... mais je n'ai pas le résultat
escompté.
Note le champ Id est une clé primaire, numéro auto
Merci d'avance de vos suggestions...
ejc





Tu peux ajouter un valeur que tu utilises pour forcer le tri.
SELECT "A", id, nom
from table1
order by 1, 3
union
SELECT "B", id, nom
from table2
order by 1, 3
Avatar
ejc
Merci, ça roule...
1-Une question quand même : pourquoi Order by 1,3 ? que représentent 1 et 3
2-Et si on souhaite séparer les 2 listes par, exemple, "--------"
Merci,
ejc
"Wendake" a écrit dans le message de news:

ejc a écrit :
Bonjour à tous,
j'ai créé cette requête
(select id, nom from table1 order by nom) union all (select id, nom
from table2 order by nom)
pensant pouvoir afficher les noms de la table1 en ordre croissant PUIS
les noms de la table2 en ordre croissant... mais je n'ai pas le résultat
escompté.
Note le champ Id est une clé primaire, numéro auto
Merci d'avance de vos suggestions...
ejc





Tu peux ajouter un valeur que tu utilises pour forcer le tri.
SELECT "A", id, nom
from table1
order by 1, 3
union
SELECT "B", id, nom
from table2
order by 1, 3


Avatar
ejc
Je viens de comprendre (sorry...) le forçage par "A", "B", etc. et le "ORDER
BY"
par exemple :
SELECT "A", id1, nom1 from table1 order by 1, 3
union
select "B",0,"-----" from table1 order by 1,3
union
SELECT "C", id2, nom2
from table2
order by 1, 3
fonctionne très bien et répond à ma demande
Dans la mesure où Id1 et Id2 sont différents de 0, il sera simple
d'intercepter le clic sur la ligne "----"
Merci encore,
ejc
"ejc" <~ a écrit dans le message de news:

Merci, ça roule...
1-Une question quand même : pourquoi Order by 1,3 ? que représentent 1 et
3
2-Et si on souhaite séparer les 2 listes par, exemple, "--------"
Merci,
ejc
"Wendake" a écrit dans le message de news:

ejc a écrit :
Bonjour à tous,
j'ai créé cette requête
(select id, nom from table1 order by nom) union all (select id, nom
from table2 order by nom)
pensant pouvoir afficher les noms de la table1 en ordre croissant PUIS
les noms de la table2 en ordre croissant... mais je n'ai pas le résultat
escompté.
Note le champ Id est une clé primaire, numéro auto
Merci d'avance de vos suggestions...
ejc





Tu peux ajouter un valeur que tu utilises pour forcer le tri.
SELECT "A", id, nom
from table1
order by 1, 3
union
SELECT "B", id, nom
from table2
order by 1, 3