OVH Cloud OVH Cloud

Problème de syntaxe

3 réponses
Avatar
Moah
Bonjour,
pourquoi ces instructions ne me renvoient aucun r=E9sultat :=20

DECLARE @Valeurs VARCHAR(100)
SET @Valeurs =3D '''Valeur1'',''Valeur2'''
SELECT * FROM MaTable WHERE Champ1 IN(@Valeurs)

alors que la requ=EAte suivante fonctionne :

SELECT * FROM MaTable WHERE Champ1 IN('Valeur1','Valeur2')

Merci d'avance.

3 réponses

Avatar
jeorme
essaye
select @valeurs = 'valeur1' + 'valeur2'


"Moah" a écrit dans le message news:
097001c3dc1b$a26c4c60$
Bonjour,
pourquoi ces instructions ne me renvoient aucun résultat :

DECLARE @Valeurs VARCHAR(100)
SET @Valeurs = '''Valeur1'',''Valeur2'''
SELECT * FROM MaTable WHERE Champ1 IN(@Valeurs)

alors que la requête suivante fonctionne :

SELECT * FROM MaTable WHERE Champ1 IN('Valeur1','Valeur2')

Merci d'avance.
Avatar
Fred BROUARD
la requête 1 n'est possible que dans le cas d'utilisation de SQL dynamique.

A +

Moah a écrit:
Bonjour,
pourquoi ces instructions ne me renvoient aucun résultat :

DECLARE @Valeurs VARCHAR(100)
SET @Valeurs = '''Valeur1'',''Valeur2'''
SELECT * FROM MaTable WHERE Champ1 IN(@Valeurs)

alors que la requête suivante fonctionne :

SELECT * FROM MaTable WHERE Champ1 IN('Valeur1','Valeur2')

Merci d'avance.



--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
Michel Walsh
Salut,


Un paramètre ne peut remplacer qu'une constante. 'Valeur1', 'Valeur2'
est désirée comme une expression, mais sera lue comme une constante,
textuellement, non comme une "commande", ni comme une "expression", ni une
"instruction".



Espérant être utile,
Vanderghast, Access MVP



"Moah" wrote in message
news:097001c3dc1b$a26c4c60$
Bonjour,
pourquoi ces instructions ne me renvoient aucun résultat :

DECLARE @Valeurs VARCHAR(100)
SET @Valeurs = '''Valeur1'',''Valeur2'''
SELECT * FROM MaTable WHERE Champ1 IN(@Valeurs)

alors que la requête suivante fonctionne :

SELECT * FROM MaTable WHERE Champ1 IN('Valeur1','Valeur2')

Merci d'avance.