0
votes

SQL avec conditionnel où

Quelqu'un pourrait-il s'il vous plaît aider avec la requête ci-dessous?

J'ai une table comme ci-dessous: xxx

et je veux récupérer la valeur "Code" en passant " Les valeurs "et" utilisateur ", cependant, lorsque" l'utilisateur "ne correspond / existe pas, j'aurais besoin de la ligne avec l'utilisateur NULL. Exemple: xxx

doit renvoyer la valeur de code 1ST (7305553), comme "Test" de l'utilisateur n'existe pas. Ce genre de comportement meilleur correspondant est-il possible avec une sorte de "où"? (avec une sorte de déclaration de cas?)


2 commentaires

Sélectionnez le code de My_Table où alias = 'BPP' et (User = 'Test' ou utilisateur est NULL) Ordonnance par utilisateur ASC; Vous obtenez une ou deux lignes. Il suffit d'ajuster la clause de commande pour obtenir le null comme deuxième enregistrement lorsque vous en avez deux, vous êtes donc sûr lequel est le null.


@AntonMitsev limite-le à un également.


3 Réponses :


2
votes

Essayez ceci: xxx

acclamations !! / p>


1 commentaires

Merci beaucoup. Meilleure réponse je pense



0
votes

Essayez cas dans MySQL:

SELECT
    CODE
FROM
    MY_TABLE
WHERE
    ALIAS = 'BPP'
AND 
    CASE 
        WHEN USER != 'TEST' THEN 1=1 
        ELSE USER = 'TEST'
    END;


4 commentaires

merci pour la suggestion, cependant selon la balise, je suis sur Oracle et non MySQL


Malheureusement, il ne fait pas: ora-00905: mot clé manquant


Je l'ai déjà essayé avec "fin" aussi bien de mon côté, toujours la même erreur


J'espère qu'il y aura une autre syntaxe. Je n'ai pas Oracle dB afin que je ne puisse pas vérifier l'oracle.



0
votes

récupérer la ligne si l'alias est égal à "BPP" et l'utilisateur est égal à "Test"
ou
L'alias est égal à "BPP" et l'utilisateur est NULL et il n'y a aucun alias 'BPP' et utilisateur 'test' xxx


0 commentaires