Šis raksts ietilpst rakstu kopā par Access SQL. Šajā rakstā ir paskaidrots, kā rakstīt klauzulu Where, kā arī sniegti piemēri, lai attēlotu dažādas metodes, ko varat izmantot klauzulā Where.
SQL priekšrakstā klauzula Where norāda kritērijus, kuriem lauku vērtībām jāatbilst, lai vaicājuma rezultātos tiktu iekļauti ieraksti, kuros ietvertas attiecīgās vērtības.
Pārskatu par Access SQL skatiet rakstā Access SQL: pamatjēdzieni, vārdnīca un sintakse.
Šajā rakstā
Rezultātu ierobežošana, izmantojot kritērijus
Ja vēlaties izmantot datus, lai ierobežotu vaicājumā atgriezto ierakstu skaitu, varat izmantot opciju kritēriji. Vaicājuma kritērijs ir līdzīgs formulai — tā ir virkne, kurā var būt ietvertas lauka atsauces, operatori un konstantes. Vaicājumu kritēriji ir šādas opcijas veids: izteiksme.
Tālāk esošajā tabulā ir parādīti daži kritēriju paraugi un paskaidrots, kā tie darbojas.
Kritēriji |
Apraksts |
>25 un <50 |
Šis kritērijs attiecas uz Number lauku, piemēram, Price vai UnitsInStock. Tajā tiek iekļauti tikai tādi ieraksti, kuros laukā Price vai UnitsInStock ir ietverta vērtība, kas ir lielāka par 25 un mazāka par 50. |
DateDiff ("yyyy", [BirthDate], Date()) > 30 |
Šis kritērijs attiecas uz lauku Date/Time, piemēram, BirthDate. Vaicājuma rezultātā tiek iekļauti tikai tādi ieraksti, kuros gadu skaits starp personas dzimšanas datumu un šodienas datumu ir lielāks par 30. |
Is Null |
Šo kritēriju var lietot jebkura tipa laukam, lai parādītu ierakstus, kuros lauka vērtība ir Null. |
Kā parādīts iepriekšējā tabulā, kritēriji var izskatīties ļoti atšķirīgi atkarībā no tā lauka datu tipa, uz kuru tie attiecas, kā arī no jūsu konkrētajām prasībām. Daži kritēriji ir vienkārši un izmanto pamata operatorus un konstantes. Citi kritēriji ir sarežģīti un izmanto funkcijas un speciālos operatorus, kā arī ietver lauku atsauces.
Svarīgi!: Ja laukā tiek izmantota apkopošanas funkcija, klauzulā Where attiecīgajam laukam nevar norādīt kritērijus. Tā vietā ir jāizmanto klauzula HAVING, lai norādītu kritērijus apkopotiem laukiem. Papildinformāciju skatiet rakstos Access SQL: pamatjēdzieni, vārdnīca un sintakse un Klauzula HAVING.
Klauzulas Where sintakse
Klauzulā Where jāizmanto priekšraksta SELECT vaicājumu kritēriji.
Klauzulas Where pamata sintakse ir šāda:
WHERE field = criterion
Piemērs: pieņemsim, ka vēlaties skatīt kāda klienta tālruņa numuru, bet atceraties tikai klienta uzvārdu — Bagel. Tā vietā, lai skatītu visus datu bāzē ietvertos tālruņa numurus, varat izmantot klauzulu Where, lai ierobežotu rezultātus un ērtāk atrastu vajadzīgo tālruņa numuru. Ja uzvārdi tiek glabāti laukā ar nosaukumu LastName, klauzulai Where jāizskatās šādi:
WHERE [LastName]='Bagel'
Piezīme.: Klauzulas Where kritēriju pamatā nav jābūt vērtību ekvivalencei. Varat izmantot citus salīdzinājuma operatorus, piemēram, “lielāks par” (>) vai “mazāks par” (<). Piemērs: WHERE [Price]>100.
Klauzulas Where izmantošana, lai apvienotu datu avotus
Dažkārt ir jāsalīdzina datu avoti, pamatojoties uz laukiem, kuros ir atbilstīgi dati, bet atšķirīgi datu tipi. Piemēram, vienā tabulā lauka datu tips var būt Number (Skaitlis), bet šis lauks ir jāsalīdzina ar lauku otrā tabulā, kura datu tips ir Text (Teksts).
Nevar izveidot savienojumu starp laukiem, kuriem ir atšķirīgi datu tipi. Lai apvienotu datus no diviem datu avotiem, pamatojoties uz vērtībām laukos ar atšķirīgiem datu tipiem, ir jāizveido klauzula Where, kurā viens lauks tiek izmantots kā kritērijs otram laukam, izmantojot atslēgvārdu LIKE.
Piemērs: pieņemsim, ka vēlaties izmantot datus no tabulām table1 un table2, bet tikai tādā gadījumā, ja dati laukā field1 (teksta lauks tabulā table1) atbilst datiem laukā field2 (skaitļu lauks tabulā table2). Klauzulai Where ir jāizskatās šādi:
WHERE field1 LIKE field2
Papildinformāciju par kritēriju izveidi lietošanai klauzulā Where skatiet rakstā Vaicājumu kritēriju piemēri.