1=1
est généralement utilisé en haut de la clause where pour des raisons de formatage et pour faciliter le débogage. C'est la syntaxe correcte et n'a aucune incidence sur la sortie de la requête réelle.
Ceci est particulièrement utile lorsque vous voulez commenter ligne par ligne de la clause where à déboguer. Considérons la requête
SELECT Columns
FROM Table
WHERE 1=1
AND Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
contre
SELECT Columns
FROM Table
WHERE Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
Il est beaucoup plus facile de commenter une partie significative de la clause WHERE avec la première requête
WHERE 1=1
-- AND Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
alors que dans la deuxième requête vous le feriez avoir à faire
SELECT Columns
FROM Table
WHERE --Col1 = @Value1
-- And
Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
EDIT:
formatter les requêtes de ci-dessus spécialement pour StackOverflow parce qu'elle ne reconnaît que le /* COMMENT */
et non la -- COMMENT
Il est beaucoup plus facile de commenter une partie significative de la clause WHERE avec la première requête
WHERE 1=1
/* AND Col1 = @Value1 */
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
alors que dans la deuxième requête que vous auriez à faire
SELECT Columns
FROM Table
WHERE /* Col1 = @Value1 */
/* And */
Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
La requête est équivalente à: 'SELECT * FROM user' – intgr