Where 1=1 SQL

Door Rachelle Blok
In SQL
6 november 2014
0 Reacties
1661 Views

In SQL queries wordt soms gebruik gemaakt van WHERE 1=1. Er zijn 2 algemene redenen waarom dit wordt gebruikt:

  • commenten van een voorwaarde in de WHERE clause
  • dynamisch SQL

Ten eerst zorgt het ervoor dat je gemakkelijk voorwaarden in een WHERE clause kunt ‘commenten’. Je weet namelijk zeker dat er een WHERE staat in je SQL statement en vervolgens voeg je extra voorwaarden toe met AND. Je hoeft je dan niet meer druk te maken of het de eerste voorwaarde in de WHERE clause is en of je WHERE of AND moet gebruiken.
Een voorbeeld van een SQL query is:
[sql] SELECT *
FROM Producten
WHERE 1=1
AND ProductCategorie = ‘Fietsen’
— AND Kleur = ‘Blauw’
AND Prijs > 500
[/sql] Iedere voorwaarde wordt op deze manier op een nieuwe regel geplaatst waardoor je een bepaalde voorwaarde makkelijk kunt ‘commenten’ door – – aan het begin van de regel te zetten. In dit geval is Kleur = ‘Blauw’ gecomment.

Ten tweede wordt het gebruikt voor dynamisch SQL. Dynamisch SQL zorgt ervoor dat SQL statements tijdens run time worden gegenereerd. De SQL statements worden binnen een programma gebruikt. Door gebruik te maken van WHERE 1=1 kunnen alle voorwaarden gegenereerd worden met AND <voorwaarde>. Op deze manier hoef je niet meer het aantal voorwaarden te tellen. Een voorbeeld hiervan is onderstaand Java programma:
[java] dim sqlstmt as new Stringbuilder
sqlstmt.add(“SELECT * FROM Producten”)
sqlstmt.add(“WHERE 1=1″)
If ProductCategorie <> ” then
sqlstmt.AppendFormat(“AND ProductCategorie = ‘Fietsen'”, trim(ProductCategorie))
end if
If Prijs > 0 then
sqlstmt.AppendFormat(“AND Prijs > 500”, trim(Prijs))
end if
[/java] In dit programma wordt WHERE 1=1 aan het begin van het programma aan de SQL statement toegevoegd. Vervolgens worden twee voorwaarden met AND gegenereerd in aparte programma regels die vervolgens worden samengevoegd.

Over "" Heeft 37 Posts

Rachelle Blok studeert Data Science en schrijft blogartikelen voor ReportingBLOG, over verschillende tools zoals Excel, SQL Server en Crystal Reports. Rachelle heeft daarnaast een eigen bedrijf in webdesign.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *