SQL04: Operadors SQL äND, öR i NöT

La clàusula WHERE es pot combinar amb els operadors AND, OR i NOT.
Els operadors AND i OR s'utilitzen per filtrar registres en funció de més d'una condició:
L'operador AND mostra un registre si totes les condicions separades per AND són VERTADES.
L'operador OR mostra un registre si alguna de les condicions separades per OR és TRUE.
L'operador NOT mostra un registre si les condicions són NO CERT.


AND Exemple

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és "Alemanya" i la ciutat és "Berlín":

SQL: SELECT * FROM Customers WHERE Country='Germany' AND City='Berlin';
GenQL:
Where w = Where.AND(CustomersFields.COUNTRY.equal("Germany"), CustomersFields.CITY.equal("Berlin")); List<Customers> andCustomers = this.getCustomerManager().select(w); print(andCustomers);





OR Exemple

La següent instrucció SQL selecciona tots els camps de "Clients" on la ciutat és "Berlín" OR "München":

SQL: SELECT * FROM Customers WHERE City='Berlin' OR City='München';
GenQL:
Where w = Where.OR(CustomersFields.CITY.equal("Berlin"), CustomersFields.CITY.equal("München")); List<Customers> orCustomers = this.getCustomerManager().select(w); print(orCustomers);





OR Exemple

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és "Alemanya" o "Espanya":

SQL: SELECT * FROM Customers WHERE Country='Germany' OR Country='Spain';
GenQL:
Where w = Where.OR(CustomersFields.COUNTRY.equal("Germany"), CustomersFields.COUNTRY.equal("Spain")); List<Customers> orCustomers = this.getCustomerManager().select(w); print(orCustomers);





NOT Exemple v1

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és NO "Alemanya":

SQL: SELECT * FROM Customers WHERE NOT Country='Germany';
GenQL:
Where w = CustomersFields.COUNTRY.notEqual("Germany"); List<Customers> notv1Customers = this.getCustomerManager().select(w); print(notv1Customers);





Combinant AND, OR i NOT

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és "Alemanya" i la ciutat ha de ser "Berlín" o "München" (utilitzeu parèntesis per formar expressions complexes):

SQL: SELECT * FROM Customers WHERE Country='Germany' AND (City='Berlin' OR City='München');
GenQL:
Where wOr = Where.OR(CustomersFields.CITY.equal("Berlin"), CustomersFields.CITY.equal("München")); Where wAnd = Where.AND(CustomersFields.COUNTRY.notEqual("Germany"), wOr); List<Customers> customers = this.getCustomerManager().select(wAnd); print(customers);





NOT Exemple v2

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és NO "Alemanya":

SQL: SELECT * FROM Customers WHERE NOT Country='Germany';
GenQL:
Where w = CustomersFields.COUNTRY.notIn(new String[] { "Germany" }); List<Customers> notv2Customers = this.getCustomerManager().select(w); print(notv2Customers);





Combinant AND, OR i NOT

La següent instrucció SQL selecciona tots els camps de "Clients" on el país és NOT "Alemanya" i NOT "EUA":

SQL: SELECT * FROM Customers WHERE NOT Country='Germany' AND NOT Country='USA';
GenQL:
Where w1 = CustomersFields.COUNTRY.notEqual("Germany"); Where w2 = CustomersFields.COUNTRY.notEqual("USA"); Where w = Where.AND(w1, w2); List<Customers> customers = this.getCustomerManager().select(w); print(customers);