J'ai une page sur mon site qui a plusieurs boîtes déroulantes comme filtres.Réécrire cette requête pour la rendre plus évolutive
Ainsi, la procédure SQL pour cette page serait quelque chose comme ça
IF @Filter1 = 0, @Filter2 = 0, @Filter3 = 0
BEGIN
SELECT * FROM Table1
END
ELSE IF @Filter1 = 1, @Filter2 = 0, @Filter3 = 0
BEGIN
SELECT * FROM Table2
END
Au début, il n'y avait que quelques résultats par filtre donc il n'y avait pas beaucoup de permutations. Cependant, plus de filtres ont été ajoutés de sorte qu'il y a plus de 20 contrôles IF ELSE maintenant.
Donc si chaque filtre a 5 options, je devrai faire 5 * 5 * 5 = 125 IF ELSE vérifie si les données sont dépendantes des filtres.
Mise à jour Le premier filtre modifie la condition WHERE, le second filtre ajoute plusieurs tables à l'ensemble des résultats, le troisième filtre modifie la condition ORDER BY
Comment puis-je faire cette requête plus évolutive telle que je vous n'avez pas besoin d'écrire un nouveau groupe d'instructions IF ELSE pour vérifier chaque condition chaque fois qu'un nouveau filtre est ajouté à la liste en plus d'utiliser SQL dynamique ...
Est-ce que vous sélectionnez réellement dans une table différente pour chaque filtre ou la clause WHERE change-t-elle? –
a mis à jour ma question pour refléter votre requête – super9