SQL duomenų diapazonų duomenų pasirinkimas

Pristatome WHERE sąlygą ir BETWEEN sąlygą

Struktūrinių užklausų kalba (SQL) suteikia duomenų bazės vartotojams galimybę kurti pritaikytus užklausimus, norint gauti informaciją iš duomenų bazių. Ankstesniame straipsnyje mes ištyrėme informaciją iš duomenų bazės, naudodami SQL SELECT užklausas . Išskleiskime šią diskusiją ir išnagrinėkime, kaip galite atlikti išplėstines užklausas, kad gautumėte duomenis, atitinkančius konkrečias sąlygas.

Paimkime pavyzdį, paremtą dažniausiai naudojama "Northwind" duomenų baze, kuri dažnai tiekia duomenų bazės produktus kaip pamoka.

Štai ištrauka iš duomenų bazės produktų lentelės:

Produktų lentelė
ProductID Produkto pavadinimas SupplierID "NumberPerUnit" Vienetinis mokestis UnitsInStock
1 Chai 1 10 dėžių x 20 krepšių 18.00 39
2 Čangas 1 24 - 12 oz buteliai 19.00 val 17
3 Anizuotasis sirupas 1 12-550 ml buteliai 10.00 val 13
4 Chef Antono Cajūno prieskoniai 2 48 - 6 auksiniai stiklainiai 22 val 53
5 Chef Antono Gumbo mišinys 2 36 dėžutės 21.35 0
6 Senelės "Boysenberry Spread" 3 12 - 8 oz. Stiklainiai 25.00 120
7 Dėdės Bobo organiniai džiovinti kriaušės 3 12 - 1 lb pkgs. 30.00 15

Paprastos ribinės sąlygos

Pirmieji apribojimai, kuriuos mes nustatysime į mūsų užklausą, apima paprastas ribines sąlygas. Mes galime nurodyti juos WHERE užklausoje SELECT, naudodamiesi paprastais sąlygomis, sukonstruotomis standartiniais operatoriais, tokiais kaip <,>,> = ir <=.


Pirma, pabandykime atlikti paprastą užklausą, leidžiančią išgauti visų duomenų bazėje esančių produktų sąrašą, kurių vieneto kaina viršija 20,00:

SELECT ProductName, UnitPrice Iš produktų WHERE UnitPrice> 20.00

Čia pateikiamas keturių produktų sąrašas, kaip parodyta žemiau:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Seasoning 22.00 Grandma's Boysenberry Spread 25.00 Uncle Bob's Organic Dried Pears 30.00

Mes taip pat galime naudoti sąlygą WHERE su eilutės reikšmėmis. Tai iš esmės prilygina simbolius skaičiams, kurių A reikšmė 1 ir Z reiškia 26 reikšmę. Pavyzdžiui, mes galėtume rodyti visus produktus su pavadinimais, prasidedančiais U, V, W, X, Y arba Z su šia užklausa:

SELECT ProductName Iš produktų WHERE ProductName> = 'T'

Kuris duoda rezultatą:

ProductName ------- Dėdė Bobo organiniai džiovinti kriaušės

Išreikšti diapazonus naudojant ribas

Taisyklė WHERE taip pat leidžia mums pritaikyti įvairią būklę vertę, naudojant kelias sąlygas. Pavyzdžiui, jei mes norėjome atlikti aukščiau pateiktą užklausą ir apriboti rezultatus produktams, kurių kainos yra nuo 15.00 iki 20.00, galėtume naudoti šią užklausą:

SELECT ProductName, UnitPrice Iš produktų WHERE UnitPrice> 15,00 ir UnitPrice <20,00

Tai pateikia toliau pateiktą rezultatą:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

Išreikšti diapazonus tarp

SQL taip pat suteikia nuorodą BETWEEN sintaksę, kuri sumažina sąlygų, kurias turime įtraukti, skaičių ir daro užklausą lengviau skaitomą. Pavyzdžiui, vietoj to, kad naudosime dvi pirmiau nurodytas "WHERE" sąlygas, mes galėtume išreikšti tą patį užklausą kaip:

SELECT ProductName, UnitPrice Iš produktų, WHERE UnitPrice tarp 15.00 ir 20.00

Kaip ir su kitomis sąlygomis, MUZIEJUS taip pat veikia su stringomis. Jei norime pateikti visų šalių, prasidedančių V, W arba X, sąrašą, galėtume naudoti užklausą:

PASIRINKITE produkto pavadinimą IŠ PRODUKTŲ, KURIĄ PRODUKTASĮ "A" IR "D"

Kuris duoda rezultatą:

Produkto pavadinimas ------- Anizuotasis sirupas Chai Chang Chef Antono Gumbo mišinio virėjas Antono Cajunas Prieskoniai

Klaida WHERE yra galinga SQL kalbos dalis, kuri leidžia apriboti rezultatus į vertes, nurodytas nurodytuose diapazonuose. Labai dažnai naudojama, kad padėtų išreikšti verslo logiką ir turėtų būti kiekvieno duomenų bazės specialisto įrankių rinkinio dalis.

Dažnai naudinga įtraukti įprastas nuostatas į saugomą procedūrą , kad ji būtų prieinama tiems, kurie neturi SQL žinios.