Bonjour,
Imaginons une table T1 avec
A;1
B;2
C;3
J'aimerais trouver le requête qui
- si je lui donne A, elle me retourne A;1
- et si je lui donne D (qui n'existe pas) me retourne quand même "D".
Comment faire?
merci d'avance
Bonjour,
Imaginons une table T1 avec
A;1
B;2
C;3
J'aimerais trouver le requête qui
- si je lui donne A, elle me retourne A;1
- et si je lui donne D (qui n'existe pas) me retourne quand même "D".
Comment faire?
merci d'avance
Une base de données ne peut pas inventer les données inexistantes !
Il te faut a minima une table contenant toutes les lettres de A à D si tu veux avoir D, grâce à une jointure externe.
Soit la table Lettre (lettre) contenant {A, B, C, D} et la table T1 (lettre, valeur) contenant les valeurs que tu as données.
=> Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT l.lettre, T1.valeur FROM Lettre l LEFT OUTER JOIN T1 ON T1.lettre = l.lettre
lettre, valeur
A, 1
B, 2
C, 3
D, NULL
Ok, merci. J'espérais qu'il y aurait moyen d'éviter de créer une table temporaire.
a+
Bonjour,
D'accord avec Cinephil.
Néanmoins, j'aimerai une précision:Une base de données ne peut pas inventer les données inexistantes !
Comment tu lui donnes A?si je lui donne A, elle me retourne A;1
Qu'est-ce que tu entends par là?
Quel est ton SGBD?
A+
Soazig
Tu peux utiliser une pseudo table, et ainsi le coder dans ta requete, mais tout dépend de ce que tu veux faire...
En toute logique, tu devrais avoir cette liste (A,B,C,D) quelques part dans une de tes tables !
Si ce n'est pas le cas, soit tu as un problème de conception au niveau de ta base, soit il y a une autre raison, mais dans ce cas la, laquelle ? et je crois que c'est le but de la question de soazig...
Détail plus le problème qu'on puisse mieux détailler la (les) solution(s)![]()
Bonjour,
C'est bien dans cette idée, que je lui ai demandé quel SGBD il utilisait.Envoyé par aieeeuuuuu
A+
Soazig
Bonjour,
J' ai une base client avec un ID et le nom client et j'ai besoin de contrôler si certains ID existent dans cette table.
L'idée est la même : à savoir pouvoir identifier les ID qui n'existent plus dans ma base client.
Je pensais que par requête seule (sans passer par un table tempo), on pouvait sortir les ID définis dans mon filtre et qui n'existent pas en base.
Quelqu'un peut-il me confirmer ?![]()
Si tes ID sont, comme ils devraient l'être pour constituer une bonne clé, de type entier et auto-incrémentés, tu peux faire une requête permettant de trouver les trous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT t1.ID AS avant_trou, MIN(t2.ID) AS apres_trou FROM la_table t1 LEFT OUTER JOIN la_table t2 ON t2.ID > t1.ID WHERE t2.ID - t1.ID > 1 GROUP BY t1.ID ORDER BY t1.ID
Merci pour la réponse, même si elle ne colle pas complètement à mon souhait.
J'ai procédé via une table tempo.
bonne journée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager