Pytanie brzmi następująco: czy zamiana kolejności dwóch wyrażeń logicznych klauzuli WHERE, połączonych operatorem AND (koniunkcja) może spowodować, że wynik zapytania będzie odmienny (SQL Server 2005)? Jeżeli uważasz, że odpowiedź jest negatywna, spójrz na poniższy skrypt:
-- zapytanie 1
SELECT s.colA FROM
(
SELECT 'abc' AS colA UNION ALL
SELECT '1'
) s
WHERE
s.colA NOT LIKE '[^0-9]%'
AND s.colA = 1;
-- zapytanie 2
SELECT s.colA FROM
(
SELECT 'abc' AS colA UNION ALL
SELECT '1'
) s
WHERE
s.colA = 1
AND s.colA NOT LIKE '[^0-9]%';
Pierwsze zapytanie zwróci jeden rekord, podczas gdy drugie zapytanie zakończy się błędem konwersji. Kolejność wyrażeń logicznych tworzących koniunkcję ma więc w niektórych sytuacjach fundamentalne znaczenie - a o prawie przemienności koniunkcji w świecie baz danych trzeba czasem zapomnieć.