OVH Cloud OVH Cloud

order by 2, 3, 1, 4

3 réponses
Avatar
elia
Bonjour,

J'ai une table qui d=E9fini chaque langue par un num=E9ro soit:

allemand =3D 1
Fran=E7ais =3D 2
Italien =3D 3
Autre =3D 4

Quelle requ=EAte en SQL faire pour selectionner d'abord le fran=E7ais
ensuite l'allemand, puis le reste.

ORDER BY langue_id, 2, 1, 3, 4 ???=20

Merci, pascal

3 réponses

Avatar
SQLpro [MVP]
elia a écrit :
Bonjour,

J'ai une table qui défini chaque langue par un numéro soit:

allemand = 1
Français = 2
Italien = 3
Autre = 4

Quelle requête en SQL faire pour selectionner d'abord le français
ensuite l'allemand, puis le reste.

ORDER BY langue_id, 2, 1, 3, 4 ???

Merci, pascal



Soit rajouter l'info à la volée, soit rajouter l'info dans la table...

démo :

CREATE TABLE T_LANGUE_LNG
(LNG_ID INT,
LNG_LANGUE VARCHAR(16))

INSERT INTO T_LANGUE_LNG VALUES (1, 'allemand')
INSERT INTO T_LANGUE_LNG VALUES (2, 'Français')
INSERT INTO T_LANGUE_LNG VALUES (3, 'Italien')
INSERT INTO T_LANGUE_LNG VALUES (4, 'Autre')

1) à la volée :

SELECT LNG_ID, LNG_LANGUE,
CASE LNG_LANGUE
WHEN 'allemand' THEN 2
WHEN 'Français' THEN 1
WHEN 'Italien' THEN 3
WHEN 'Autre' THEN 4
END AS ORDRE
FROM T_LANGUE_LNG
ORDER BY ORDRE

2) dans la table

ALTER TABLE T_LANGUE_LNG ADD LNG_ORDRE INT

UPDATE T_LANGUE_LNG
SET LNG_ORDRE = 1
WHERE LNG_LANGUE = 'Français'

UPDATE T_LANGUE_LNG
SET LNG_ORDRE = 2
WHERE LNG_LANGUE = 'allemand'

UPDATE T_LANGUE_LNG
SET LNG_ORDRE = 3
WHERE LNG_LANGUE = 'Italien'

UPDATE T_LANGUE_LNG
SET LNG_ORDRE = 4
WHERE LNG_LANGUE = 'Autre'

SELECT *
FROM T_LANGUE_LNG
ORDER BY LNG_ORDRE

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
elia
Super extra merci. Il me reste un bout à faire en language sql mais
j'ai compris la logique!! Merci beaucoup à toi! Pascal
Avatar
elia
Merci super extra. Il me reste un bout à faire en SQL mais j'ai
compris la logique. Merci à toi. Pascal