Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 28/03/2008, 19h32   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2008
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 99
Points : 12
Points : 12
Par défaut selection en sql

Bonjour,,tout le monde
comment peut on selectionner les noms et les salaires sans redondance .
par exp:
SMITH 5000
CLERCK 5000
ALEN 2000 alors dans ce cas j'affiche SMITH 5000
ALEN 2000
j'ai fait ca
cursor cursor_emp is select distinct sal from emp x
where ename in(select ename from emp y where x.sal =y.sal)
order by sal desc;
mais ce que je veux moi c les ename et les salaires
bargougui86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2008, 12h56   #2
Invité régulier
 
Inscription : avril 2006
Messages : 16
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations forums :
Inscription : avril 2006
Messages : 16
Points : 7
Points : 7
Bonjour,
Il faut savoir que SQL est un langage qui part d'une relation matérialisée (table) que l'on spécifie dans la clause FROM et retourne aussi une relation (c'est pas par hazard que SQL est un langage de gestion de BD relationnelles).
On peut comprendre par relation, que les valeurs des colonnes qui constituent une ligne aient une relation logique. Dans ton exemple, (SMITH, 5000), la relation est simple: le salaire de SMITH est 5000.
Donc on ne peut demander à SQL de nous afficher une relation insignifiante... ce que tu demandes à ce que j'ai compris. Dans ton résultat, quelle est la relation entre SMITH et 5000? pourquoi ne pas afficher CLARK 5000 au lieu de SMITH 5000? en d'autres termes, tu as employés ayant le même salaire (SMITH et CLARK), pourquoi tu veux afficher SMITH et non CLARK ????
Donc ce que tu peux faire, c'est ou bien l'affichage des salaires distincts:
SELECT DISTINCT sal FROM emp;
ou les ename distincts... et ils le sont logiquement !
SELECT DISTINCT ename FROM emp;
Tu peux aussi afficher les couples (ENAME, SAL) distincts, mais ils le sont de nature puisque ENAME est logiquement UNIQUE:
SELECT DISTINCT ename,sal FROM emp;
bach 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 23h09.


 
 
 
 
Partenaires

Hébergement Web