|
| [SQL] Where .... IN ('ABC','DEF'.........) |
| Iniciado por jeremy.dooremont, 08,jul. 2019 16:16 - 5 respuestas |
| |
| | | |
|
| |
| Publicado el 08,julio 2019 - 16:16 |
Bonjour à tous,
Un petit problème de requête SQL qui est le suivant : J'ai ma requête SQL suivante :
"SELECT * FROM MaTable WHERE Nom IN ('Paul','Joe','Doe') ORDER BY Nom ASC"
Qui se trouve dans un fichier de requête Lorsque je l'appelle avec HRequêteExécute, ceci fonctionne correctement et elle me renvoie bien les bons éléments.
Mais lorsque je veux créer mes paramètres dans mon code et l'envoyer dans la requête ceci ne marche plus.
Exemple :
sTableauSQL = "('Paul','Joe','Doe')" HExécuteRequête("test",hRequêteDéfaut,sTableauSQL)
Il effectue bien la requête mais lors du HLitPremier, il considère que la requête est vide.
"SELECT * FROM MaTable WHERE Nom IN { p_TableauDeNom } ORDER BY Nom ASC"
Par contre si ma variable est comme ceci :
sTableauSQL = "('Paul')"
Cela fonctionne.
Quelqu'un aurait-il une idée du problème ?
Cordialement,
Jérémy |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 08,julio 2019 - 19:26 |
et si vous écrivez ceci ?
SELECT * FROM MaTable WHERE Nom IN ('Paul','Joe','Doe') ORDER BY Nom ASC" |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 08,julio 2019 - 20:40 |
Bonjour, Ton problème vient des séparateurs. La doc précise que les valeurs doivent être séparées par ";" TAB ou RC. Donc ton paramètre doit être formaté comme suit :
sTableauSQL="John;Doe;Paul"
sTableauSQL="John"+RC+"Doe"+RC+"Paul"
sTableauSQL="John"+TAB+"Doe"+TAB+"Paul" Dans ton cas, ta liste se résume à la valeur ('Paul','Joe','Doe') Si personne ne s'appelle ('Paul','Joe','Doe') et ce nom est très rare, même dans les test, la machine ne trouve pas et te renvoie 0 valeurs trouvées -- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 08,julio 2019 - 20:44 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,julio 2019 - 11:08 |
Cela fonctionne parfaitement ! Merci beaucoup |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 09,julio 2019 - 12:08 |
La doc précise que les valeurs doivent être séparées par ";" TAB ou RC.
Il n'y a bien que HFSQL pour fonctionner comme cela. C'est contraire à tous les standards SQL. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,julio 2019 - 15:51 |
On en apprend tous les jours! J'avais du coup laissé tombé les IN() en requête intégrée paramétrée... pour les ré-écrire en SQL Pourquoi faire simple?! |
| |
| |
| | | |
|
| | | | |
| | |
|