slt tout le monde,
J'aurais aimé savoir à quoi cela sert de mettre dans chaque clause d'une requête 1=1?
cela optimise t il la requête?
Merci
édité par neguib pour ajustement du titre, veillez à la clarté de votre forum svp
slt tout le monde,
J'aurais aimé savoir à quoi cela sert de mettre dans chaque clause d'une requête 1=1?
cela optimise t il la requête?
Merci
édité par neguib pour ajustement du titre, veillez à la clarté de votre forum svp
Bonjour,
Aurais tu un exemple de requete?
Parce que ca ne sert à rien de faire juste "1=1".
A vue d'oeil ca sert à rien mais je pense que cela sert à optimer la requête!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from A,B where 1=1 and A.x=B.y
des avis????
bonjour,
C'est 1 'bidouille' pour avoir 1 condition toujours vraie.
Dans l'exemple que tu donnes ça ne sert à rien.
Un exemple d'utilisation possible :
Tu as 1 SGBD qui n'implémente pas le CROSS JOIN et tu veux tout de même faire 1 produit cartésien, comme le JOIN impose (normalement !)
... ON k1 = k2
mais que justement tu ne veux pas faire de jointure, tu contournes le pb en faisant
... table2 INNER JOIN table1 ON 1 = 1.
Ben a mon avis, ca ne setrt a rien, et meme au contraire, ca peut dégrader (très peu je pense) le temps d'exécution.
Par contre, tu n'a pas dis sur quel SGBD tu travailles. Peut etre qu il s agit d'une syntaxe spéciale.
Cette bidouille peut avoir un intérêt lors de l'écriture de requêtes dynamiques en fonction de saisies utilisateurs dans un programme (pseudo-code) :
Comme cela il est inutile de se demander si le bout de requête à ajouter doit commencer par WHERE ou par AND.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sSQL = 'SELECT xxx FROM laTable WHERE 1 = 1' if Cond1 != '' THEN sSQL = sSQL + ' AND leChamp1 = ' + Cond1 ; ... if Cond156 != '' THEN sSQL = sSQL + ' AND leChamp156 = ' + Cond156 ;
en faite j'ai vu cela dans un code pl sql pour alimenter un entrepot de donnée!!
Merci pour les réponses en tout cas!!
Aucun effet le 1=1.
C'est effectivement un "truc" de développeur intéressant pour se simplifier l'écriture dynamique des clauses WHERE des requêtes.
En effet, une fois éliminé la première condition du filtre WHERE, toutes les autres conditions ET s'écrivent :
C'est plus facile d'ajouter quelques chose d'homogène que de se poser la question des effets de bord.
Code : Sélectionner tout - Visualiser dans une fenêtre à part AND <prédicat>
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour alpachico
voir > http://www.developpez.net/forums/viewtopic.php?t=67792Envoyé par La règle du forum
Soyez rigoureux quant aux respects des règles du forum, elles vous garantissent également les réponses les plus appropriées à résoudre votre souci, tout en veillant à ne pas incommoder inutilement les professionnels qui donnent benevolement de leur compétence à vous répondre.
Exceptionnellement, je déplace votre post dans le forum approprié Langage SQL
Conformément à la règle décrite dans le lien ci-dessus, je supprimerai tout autre post non conforme. Si par inadvertance, vous vous aperceviez d'une erreur de postage de votre part, n'hésitez pas à me contactez par mp, ou un autre collègue modérateur afin que nous vous aidions à déplacer votre post (afin d'eviter le multipostage lui même proscrit)
Très Cordialement neguib![]()
Partager