Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 15h35   #1
Membre à l'essai
 
Inscription : janvier 2005
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 77
Points : 20
Points : 20
Par défaut Eviter des doublons sur un champ

Bonjour,

J'ai une table qui contient plusieurs champs, dont deux que je dois sélectionner.

La table ressemble à ça :

Code :
1
2
3
4
5
6
7
8
9
 
 CODE | NOM
--------------
BE001 | BELGIQUE
BE002 | BELGIUM
BE003 | BELGIE
FR001 | FRANCE
FR002 | FRANCE
FR003 | FRANKRIJK
Je dois faire un select qui doit m'afficher :

Code :
1
2
3
 
BE | BELGIQUE
FR | FRANCE
Si je fais un distinct sur un substr du code, ça fonctionne bien, mais une fois que j'essaie aussi d'afficher le nom, ça m'affiche tous les noms et donc, le code apparait plusieurs fois. (ma DB n'est pas comme ça, c'est une exemple pour simplifier, les codes sont des chiffres et le champ est décimal)

Code :
1
2
3
 
SELECT DISTINCT SUBSTR(LTRIM(STR(CODE)), 1,2), NOM
FROM PAYS

Je me fiche de quel nom est choisi parmi les trois, le premier est le bon. J'ai beau essayer tous les joins et les distincts, je n'arrive pas à avoir ce que je veux...
Je ne suis pas très douée avec les group by et les having alors qu'il y a une solution en utilisant ces possibilités, soit je n'y ai pa pensé, soit j'ai mal syntaxé le tout et mon JDBC n'accepte pas la requête.

Est-ce que quelqu'un a une idée?
Kaori est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 15h37   #2
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 081
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 081
Points : 1 875
Points : 1 875
Bonjour,
Tu peux essayer ceci:
Code SQL :
1
2
3
4
 
SELECT SUBSTR(LTRIM(STR(CODE)), 1,2), min(NOM)
FROM PAYS
GROUP BY SUBSTR(LTRIM(STR(CODE)), 1,2)

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 15h46   #3
Membre à l'essai
 
Inscription : janvier 2005
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 77
Points : 20
Points : 20
Omg, merci, c'était super simple >.<

Tout le monde me disait "nan c'est pas possible", je désespérais...

Merci beaucoup <3
Kaori est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h23.


 
 
 
 
Partenaires

Hébergement Web