OVH Cloud OVH Cloud

Entrer 2 valeurs via une variable pour un WHERE ... in [ ]?

1 réponse
Avatar
JeanP
Bonjour,
J'ai écrit une procédure stockée qui accepte un argument de type 'varchar'
dans la condition WHERE :

@Site1 varchar(20)
...
where site in [@Site1]

Si je passe une valeur à la procédure, j'ai le résultat voulu:

declare @Site as varchar(20)
set @site = 'jol'
execute ProcStat @site


Mais dans le cas ou je veux passer à la fois 'jol' et 'niv'
set @site = '''jol'',''niv'''

le résultat n'est pas correct.
Est-il possible de passer ces deux valeurs ou plus dans la même variable?
Merci d'avance, Franco.

1 réponse

Avatar
Patrice Scribe
Non. Ce qui suit le IN n'est pas une variable mais une liste de variables.

Une solution est de passer par du SQL dynamique (construire la chaine SQL et
utiliser EXECUTE ou sp_execute_sql pour l'exécuter).

Patrice

--

"JeanP" a écrit dans le message de
news:3f95399e$0$284$
Bonjour,
J'ai écrit une procédure stockée qui accepte un argument de type 'varchar'
dans la condition WHERE :

@Site1 varchar(20)
...
where site in [@Site1]

Si je passe une valeur à la procédure, j'ai le résultat voulu:

declare @Site as varchar(20)
set @site = 'jol'
execute ProcStat @site


Mais dans le cas ou je veux passer à la fois 'jol' et 'niv'
set @site = '''jol'',''niv'''

le résultat n'est pas correct.
Est-il possible de passer ces deux valeurs ou plus dans la même variable?
Merci d'avance, Franco.