1=1
обычно используется в верхней части предложения where для форматирования и для простоты отладки. Это правильный синтаксис и не имеет отношения к выводу фактического запроса.
Это особенно полезно, когда вы хотите построчно комментировать предложение where для отладки. Рассмотрим запрос
SELECT Columns
FROM Table
WHERE 1=1
AND Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
против
SELECT Columns
FROM Table
WHERE Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
Намного легче закомментировать любую значимую часть предложения WHERE с помощью первого запроса
WHERE 1=1
-- AND Col1 = @Value1
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
тогда как во втором запросе вы должны сделать это
SELECT Columns
FROM Table
WHERE --Col1 = @Value1
-- And
Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
РЕДАКТИРОВАТЬ:
Отформатировал запросы сверху специально для StackOverflow, поскольку он распознает только /* COMMENT */
, а не -- COMMENT
Намного легче закомментировать любую значимую часть предложения WHERE с помощью первого запроса
WHERE 1=1
/* AND Col1 = @Value1 */
And Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5
тогда как во втором запросе вы должны сделать это
SELECT Columns
FROM Table
WHERE /* Col1 = @Value1 */
/* And */
Col2 IN (@Value2, @Value3)
And Cole Between @Value4 and @Value5