Kuidas katsetada SQLis päringuid ilma, et mul oleks tabeleid, mille põhjal seda teha?

Postitas Erki Eessaar, 13.06.2025 14:22 (muudeti 13.06.2025 14:24)
Kasutades lauses ühiseid tabeli avaldisi (common table expression) on võimalik päringu kontekstis koostada tabel, mille põhjal päringut täita.

Näide: Oletame, et ma tahan teada, kas tingimus pikkus NOT IN (170, 180) on loogiliselt samaväärne kui tingimus  pikkus <>170 OR pikkus<>180 või tingimus pikkus <>170 AND pikkus<>180.

Saan seda katsetada ilma, et mul oleks andmebaasis baastabelit, kus on veerg pikkus koos sobivate väärtustega.

Näiteks lähen DB-Fiddle keskkonda, valin PostgreSQL ja proovin neid kolme lauset. Kõigis nendes pannakse WITH klauslis VALUES lauset ja konstante kasutades samasuguse struktuuriga ja andmetega tabel, millest põhilausega andmeid otsitakse. WITH klauslis saab ära määrata tabeli avaldisega moodustatud tabeli veergude nimed.
 
WITH pikkused (pikkus) AS (VALUES (150), (160), (170), (180), (190), (200))
SELECT *
FROM pikkused
WHERE pikkus NOT IN (170, 180);
 
WITH pikkused (pikkus) AS (VALUES (150), (160), (170), (180), (190), (200))
SELECT *
FROM pikkused
WHERE pikkus <>170 OR pikkus<>180;
 
WITH pikkused (pikkus) AS (VALUES (150), (160), (170), (180), (190), (200))
SELECT *
FROM pikkused
WHERE pikkus <>170 AND pikkus<>180;

Kas postitus oli kasulik? Hinda seda!

Keskmine hinne: 5.0


Järgmine postitus → Milliseid tehisintellekti vahendeid soovitate efektiivseks õppimiseks?