BETWEEN vaihteluväleille
Käyttäkää BETWEEN-operaattoria sulkeisiin luku- ja päivämääräväleihin sekä tietäkää, milloin puoliksi avoimille väleille kannattaa käyttää eksplisiittisiä >=- ja <-vertailuja.
BETWEEN vaihteluväleille on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
BETWEEN sisältää päätepisteet
BETWEEN a AND b täsmäyttää arvot, joille x >= a AND x <= b. Molemmat päätepisteet ovat mukana.
SELECT * FROM orders WHERE total BETWEEN 100 AND 500;
-- equivalent to:
SELECT * FROM orders WHERE total >= 100 AND total <= 500;Päivämääräalueet
BETWEEN toimii myös päivämäärien ja aikaleimojen kanssa:
SELECT * FROM orders
WHERE created_at BETWEEN '2024-01-01' AND '2024-12-31';Mukaan lukevien päätepisteiden sudenkuoppa
Kun käytätte TIMESTAMP-saraketta, BETWEEN '2024-12-31' päättyy 31. päivän keskiyöllä, EI päivän lopussa. 31. joulukuuta kello 14.00 tehdyt tilaukset jäävät pois.
-- WRONG — misses orders later on Dec 31:
WHERE created_at BETWEEN '2024-12-01' AND '2024-12-31';
-- RIGHT — half-open interval:
WHERE created_at >= '2024-12-01'
AND created_at < '2025-01-01';Suosikaa ajan puoliavoimia välejä
Puoliavoin malli >= start AND < next_period on yksiselitteinen, toimii millä tahansa tarkkuudella ja ketjuuntuu luontevasti peräkkäisille ajanjaksoille.
WHERE created_at >= date_trunc('month', NOW())
AND created_at < date_trunc('month', NOW()) + INTERVAL '1 month';NOT BETWEEN
BETWEEN-lausekkeen käänteinen muoto — sulkee alueen pois:
SELECT * FROM products WHERE price NOT BETWEEN 10 AND 20;
-- equivalent to: price < 10 OR price > 20Aluehaut ja indeksit
B-tree-indeksi auttaa aluehauissa. Yhdistelmäindekseissä alueen määrittävä sarake kannattaa sijoittaa viimeiseksi parhaan selektiivisyyden saavuttamiseksi:
CREATE INDEX orders_user_total_idx ON orders (user_id, total);
-- Efficient: equality on user_id, range on total
SELECT * FROM orders
WHERE user_id = 42 AND total BETWEEN 100 AND 500;Merkkijonot ja BETWEEN
BETWEEN vertaa merkkijonoja leksikografisesti. Huomioikaa kirjainkoko:
SELECT * FROM users WHERE last_name BETWEEN 'A' AND 'C';
-- Includes 'Adams' and 'Bond', excludes 'C' itself only if 'C' < 'Ca...'Aluetyypit (PostgreSQL)
PostgreSQL sisältää erityiset aluetyypit puoliavoimia välejä varten:
SELECT int4range(10, 20) @> 15; -- true (15 in [10,20))
SELECT tsrange('2024-01-01', '2025-01-01') @> NOW()::TIMESTAMP;Alueiden tarkistaminen CHECK-ehdolla
Varmistakaa, että start <= end lisäyshetkellä:
CREATE TABLE bookings (
id BIGSERIAL PRIMARY KEY,
start_at TIMESTAMPTZ NOT NULL,
end_at TIMESTAMPTZ NOT NULL,
CHECK (start_at < end_at)
);Numeerinen ryhmittely
Yhdistäkää BETWEEN ja CASE ryhmittelyluokkien muodostamiseksi:
SELECT id, total,
CASE
WHEN total BETWEEN 0 AND 99 THEN 'small'
WHEN total BETWEEN 100 AND 999 THEN 'medium'
ELSE 'large'
END AS bucket
FROM orders;BETWEEN SYMMETRIC
SQL-standardin laajennus, joka ei välitä siitä, kumpi arvoista on pienempi:
SELECT 5 BETWEEN SYMMETRIC 10 AND 1; -- TRUEKertaus
BETWEEN on kätevä lyhyt muoto mukaan lukeville alue-ehdoille.
- Varokaa aikaleimojen päätepisteitä — suosikaa puoliavointa muotoa
>= start AND < end - Yhdistelmäindeksit nopeuttavat aluehakuja
- CHECK-rajoitteet varmistavat alueiden kelvollisuuden
Pikatarkistus
Sisältyvätkö molemmat lausekkeen BETWEEN a AND b päätepisteet standardin mukaiseen SQL:ään?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”BETWEEN vaihteluväleille” ilmainen?
Kyllä – oppitunnin ”BETWEEN vaihteluväleille” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”BETWEEN vaihteluväleille”?
Käyttäkää BETWEEN-operaattoria sulkeisiin luku- ja päivämääräväleihin sekä tietäkää, milloin puoliksi avoimille väleille kannattaa käyttää eksplisiittisiä >=- ja <-vertailuja. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”BETWEEN vaihteluväleille”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- LIKE-kuviot ja jokerimerkit
- IN ja NOT IN joukoille
- BETWEEN vaihteluväleille
- IS NULL, IS NOT NULL ja COALESCE