SQL : Combiner IN et LIKE?!?!

Le
thomthom63
Bonjour tout le monde,


Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel_D
Le #6380651
Bonjour,

La requête suivante devrait donner ce que tu veux :

SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));


"thomthom63" Bonjour tout le monde,


Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas
thomthom63
Le #6380631
Merci Michel,

Ce n'est pas vraiment ce que je voulais savoir. En fait je reprend un
programme existant qui utilise l'instruction IN. Une fonction
construit la liste des valeur à inclure dans la requête à partir d'une
table de paramètrage.

Un nouveau besoin a été formuler afin de pouvoir inclure des
expression régulières dans les paramètres.

Afin de ne pas trop modifier la structure du programme, je ne veux pas
passer par un LIKE, mais plutôt par quelque chose qui rescemble à un
IN. Si celà n'existe pas je devrais alors revoir la construction du
prédicat de ma requête de la façon que tu as précisé.

Merci pour ta réponse,

Thomas




On 13 nov, 13:37, "Michel_D" wrote:
Bonjour,

La requête suivante devrait donner ce que tu veux :

SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));

"thomthom63" Bonjour tout le monde,

Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas


Michel_D
Le #6380621
Donne ta requête car ce qui compte c'est ce que renvoie ta requête et
pas comment elle est écrite.


"thomthom63" Merci Michel,

Ce n'est pas vraiment ce que je voulais savoir. En fait je reprend un
programme existant qui utilise l'instruction IN. Une fonction
construit la liste des valeur à inclure dans la requête à partir d'une
table de paramètrage.

Un nouveau besoin a été formuler afin de pouvoir inclure des
expression régulières dans les paramètres.

Afin de ne pas trop modifier la structure du programme, je ne veux pas
passer par un LIKE, mais plutôt par quelque chose qui rescemble à un
IN. Si celà n'existe pas je devrais alors revoir la construction du
prédicat de ma requête de la façon que tu as précisé.

Merci pour ta réponse,

Thomas




On 13 nov, 13:37, "Michel_D" wrote:
Bonjour,

La requête suivante devrait donner ce que tu veux :

SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));

"thomthom63" Bonjour tout le monde,

Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas


thomthom63
Le #6380601
On 13 nov, 14:39, "Michel_D" wrote:
Donne ta requête car ce qui compte c'est ce que renvoie ta requête et
pas comment elle est écrite.

"thomthom63" Merci Michel,

Ce n'est pas vraiment ce que je voulais savoir. En fait je reprend un
programme existant qui utilise l'instruction IN. Une fonction
construit la liste des valeur à inclure dans la requête à partir d' une
table de paramètrage.

Un nouveau besoin a été formuler afin de pouvoir inclure des
expression régulières dans les paramètres.

Afin de ne pas trop modifier la structure du programme, je ne veux pas
passer par un LIKE, mais plutôt par quelque chose qui rescemble à un
IN. Si celà n'existe pas je devrais alors revoir la construction du
prédicat de ma requête de la façon que tu as précisé.

Merci pour ta réponse,

Thomas

On 13 nov, 13:37, "Michel_D" wrote:



Bonjour,

La requête suivante devrait donner ce que tu veux :

SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));

"thomthom63" Bonjour tout le monde,

Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Pour le moment ma requête rescemble à ça:
SELECT *
FROM [T_ARTCLES]
WHERE [ART_ID] IN ('A1",'A2','C1');

La partie IN est écrit dans par une fonction qui va lire dans une
table les valeurs à inclure dans le WHERE.
Je passerais bien par un fonction LIKE, mais j'ai peur pour les
performances de la requête. Le temps d'exécution de la requête de
production est très important.


Michel_D
Le #6380571
"thomthom63" On 13 nov, 14:39, "Michel_D" wrote:
Bonjour,
La requête suivante devrait donner ce que tu veux :
SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));

"thomthom63" denews:


Bonjour tout le monde,

Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Pour le moment ma requête rescemble à ça:
SELECT *
FROM [T_ARTCLES]
WHERE [ART_ID] IN ('A1",'A2','C1');

La partie IN est écrit dans par une fonction qui va lire dans une
table les valeurs à inclure dans le WHERE.
Je passerais bien par un fonction LIKE, mais j'ai peur pour les
performances de la requête. Le temps d'exécution de la requête de
production est très important.

------------------------------------------

Dés l'instant que l'on a affaire à du texte c'est théoriquement
l'opérateur like qu'il faut employer, je te propose une autre variante
de la requête avec like qui sera peut-être plus simple à construire.

SELECT *
FROM [T_ARTCLES]
WHERE ([ART_ID] Like "[A,C]*");


thomthom63
Le #6380541
On 13 nov, 15:11, "Michel_D" wrote:
"thomthom63" On 13 nov, 14:39, "Michel_D" wrote:> > Bonjour,
La requête suivante devrait donner ce que tu veux :
SELECT *
FROM [T_ARTCLES]
WHERE (([ART_LIB] Like "A*") Or ([ART_LIB] Like "C*"));

"thomthom63"


denews:





Bonjour tout le monde,

Soit la table T_ARTCLES suivante

ART_ID ART_LIB
A1 AAAA
A2 AAAA
B1 BBBB
B2 BBBB
C1 CCCC
etc...

J'aimerais dans une requête faire la sélection des article dont
l'identifiant commence par "A*" ou par "C*" et cela, sans utiliser de
LIKE.

Hélas, il cela n'est pas possible avec IN ('A*','C*'). Existe-t'il un
moyen en SQL de combiner les instruction IN et LIKE?

Merci et bonne journée,

Thomas- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Pour le moment ma requête rescemble à ça:
SELECT *
FROM [T_ARTCLES]
WHERE [ART_ID] IN ('A1",'A2','C1');

La partie IN est écrit dans par une fonction qui va lire dans une
table les valeurs à inclure dans le WHERE.
Je passerais bien par un fonction LIKE, mais j'ai peur pour les
performances de la requête. Le temps d'exécution de la requête de
production est très important.

------------------------------------------

Dés l'instant que l'on a affaire à du texte c'est théoriquement
l'opérateur like qu'il faut employer, je te propose une autre variante
de la requête avec like qui sera peut-être plus simple à construir e.

SELECT *
FROM [T_ARTCLES]
WHERE ([ART_ID] Like "[A,C]*");- Masquer le texte des messages précéd ents -

- Afficher le texte des messages précédents -


cette syntaxe m'a l'air pas mal, je vais étudier la question de plus
prêt.

Merci!



Publicité
Poster une réponse
Anonyme