J'ai la condition suivante pour écrire une requête dans Oracle.Requête SQL avec décodage et comparaison dans la clause where
J'ai besoin de récupérer tous les enregistrements d'un tableau T1 (il a deux colonnes de date D1 et D2) basé sur deux valeurs dynamiques V1 et V2. Ces V1 et V2 sont transmis dynamiquement à partir de l'application. Les valeurs possibles pour V1 sont 'Inférieur à' ou 'Supérieur à'. La valeur possible pour V2 est un nombre entier.
Recherche i besoin d'écrire:
Si V1 est passé comme 'Moins' et V2 est passé comme 5, alors je dois retourner toutes les lignes T1 OÙ D1-D2 < 5.
Si V1 est passé comme 'Supérieur à' et V2 passé à 8, alors je dois retourner toutes les lignes dans T1 WHERE D1-D2> 8;
Je pourrais penser que cela peut être fait en utilisant une clause CAS dans la clause where. Mais je ne sais pas comment commencer.
Toute aide est grandement appréciée. Merci
Magasin V2 dans une variable et référence dans la clause where. Afin de déterminer la requête basée sur l'opérateur basé dans vous pourriez construire la clause Where dynamiquement http://www.codeproject.com/Articles/20815/Building-Dynamic-SQL-In-a-Stored-Procedure, ou utiliser un Si la clause Else et faire de même sélectionne essentiellement mais avec des opérateurs de comparaison différents – CSharper
Comment est-ce possible? Voulez-vous dire que vous avez une variable, qui pourrait avoir la valeur «Moins que» ou «Plus grand que»? – zaratustra
oui vous avez raison – user1019072