J'ai besoin de vos conseils.
J'ai une instruction CASE
dans ma requête T-SQL comme ceci :
CASE
WHEN PLAN_GIVEN IN (cette liste contient 1700 valeurs à comparer) THEN 'P1'
WHEN PLAN_GIVEN IN (cette liste contient 1800 valeurs à comparer) THEN 'P2'
ELSE NULL
END AS PLAN_NAME
Je ne peux pas énumérer toutes les 1700 valeurs IN ( ) THEN 'P1'
car cela ne sera pas joli avec toutes ces valeurs.
J'ai essayé de sauvegarder les 1700 valeurs et les 1800 valeurs dans une lookup_table
comme ceci
lookup_table
columnA = toutes les 1700 valeurs
columnB = toutes les 1800 valeurs
et j'ai utilisé cette requête :
CASE
WHEN PLAN_GIVEN IN (SELECT columnA from lookup_table) THEN 'P1'
WHEN PLAN_GIVEN IN (SELECT columnB from lookup_table) THEN 'P2'
ELSE NULL
END AS PLAN_NAME
Le code ci-dessus fonctionne mais il prend plus de temps pour s'exécuter, presque 10 minutes pour compléter l'exécution.
Y a-t-il une autre façon d'atteindre cela ?