PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → WINDEV HFSQL - Gestion des chaines
WINDEV HFSQL - Gestion des chaines
Débuté par Gurdarr, 11 jan. 2024 11:54 - 1 réponse
Membre enregistré
237 messages
Posté le 11 janvier 2024 - 11:54
Bonjour,

Je fais pars de mon problème à la communauté pour savoir si je deviens sénile
Pour moi la requete SQL ci dessous devrait renvoyer vrai pour les 6 test

codeclient est une clef unique de 17 caractères Alpha Numeric

SELECT DISTINCT SUBSTRING(r.codeclient ,1,3) as ValeurDepart,
SUBSTRING(r.codeclient ,1,3) = 'ZFR' as Test1,
UPPER(SUBSTRING(r.codeclient ,1,3)) = 'ZFR' as Test2,
'/'+SUBSTRING(r.codeclient ,1,3)+'/' = '/ZFR/' as Test3,
LEFT(r.codeclient,3) = 'ZFR' as Test4,
LEFT(r.codeclient,3) = SUBSTRING(r.codeclient ,1,3) as Test5,
UPPER(LEFT(r.codeclient,3)) = 'ZFR' as Test6
FROM RetCL r

Mais seulement test1, test4 et Test 5 son validé quand ValeurDepart = 'ZFR'

Et si je replace codeclient par une rubrique tableau Alpha Numeric j'ai encore mieux
SELECT DISTINCT SUBSTRING(r.CommentairesRet[5] ,1,3) as ValeurDepart,
SUBSTRING(r.CommentairesRet[5] ,1,3) = 'ZFR' as Test1,
UPPER(SUBSTRING(r.CommentairesRet[5] ,1,3)) = 'ZFR' as Test2,
'/'+SUBSTRING(r.CommentairesRet[5] ,1,3)+'/' = '/ZFR/' as Test3,
LEFT(r.CommentairesRet[5],3) = 'ZFR' as Test4,
LEFT(r.CommentairesRet[5],3) = SUBSTRING(r.CommentairesRet[5] ,1,3) as Test5,
UPPER(LEFT(r.CommentairesRet[5],3)) = 'ZFR' as Test6
FROM RetCL r

Ici seulement Test1 et Test5 mais plus Test4 et la je deviens zinzin ;(



A l'origine le voulais récupérer uniquement mes retours dont le commentaire 5 commence par 'ZFR'
j'ai essayé sur différente bdd 26 et 2024

Si quelqu'un à une idée du pourquoi du comment.

Note : le problème est survenu depuis 01/01/2024 sur une requete qui tourne depuis 2018.


Je vous donne une solution de contournement :
SELECT DISTINCT SUBSTRING(r.CommentairesRet[5] ,1,3) as ValeurDepart,
SUBSTRING(r.CommentairesRet[5] ,1,3) IN ('ZFR') as Test1,
UPPER(SUBSTRING(r.CommentairesRet[5] ,1,3)) IN ('ZFR') as Test2,
'/'+SUBSTRING(r.CommentairesRet[5] ,1,3)+'/' IN ('/ZFR/') as Test3,
LEFT(r.CommentairesRet[5],3) IN ('ZFR') as Test4,
UPPER(LEFT(r.CommentairesRet[5],3)) IN ('ZFR') as Test6
FROM RetCL r

Attention : le test5 avec IN n'est pas SQL valide


Et bonne année :merci:
Membre enregistré
497 messages
Posté le 11 janvier 2024 - 13:33
Bonjour,

Tout ce que je peux vous dire, c'est que ça a l'air d'être spécifique à votre environnement, je ne reproduis pas de mon côté, tous les tests sont OK :




Testé en v24, v26, et v28
Message modifié, 11 janvier 2024 - 13:33