PostgreSQL

Primjeri PostgreSQL UNNEST-a

Primjeri PostgreSQL UNNEST-a
Stupac u PostgreSQL-u možete odrediti samo kao niz odgovarajućih vrsta podataka. Sve mogućnosti su ugrađeni, korisnički određeni i neotuđivi tipovi podataka. Osim toga, nizovi su vrlo relevantni u PostgreSQL-u. Doznali ste o nizovima u PostgreSQL-u, uključujući kako konstruirati, postavljati upite, a ponekad čak i generirati nizove metodom ARRAY. Međutim, postoje trenuci kada bih želio napraviti obrnuto i pretvoriti PostgreSQL niz u retke. Mnogo je uzroka zašto biste to željeli učiniti. Recimo da neko vrijeme tražite spoj dvaju nizova. U PostgreSQL-u, INTERSECT operator to može učinkovito učiniti za dva različita skupa redaka. Međutim, ne postoji pandan za nizove. Isto tako, operator UNION spaja 2 para redova; međutim, za nizove ne postoji ništa usporedivo. Čini se da je UNNEST metoda tajna svega ovoga. Dok konzumirate UNNEST, morate biti oprezni jer bi (kao i kod većine računalnih sustava) PostgreSQL radio sve što mu naložite, a ne točno ono što želite.

Da biste u potpunosti razradili ovaj koncept, otvorite instaliranu ljusku naredbenog retka PostgreSQL-a u svom sustavu. Navedite ime poslužitelja, naziv baze podataka, broj porta, korisničko ime i lozinku za određenog korisnika ako ne želite početi raditi sa zadanim opcijama. Ako želite raditi sa zadanim parametrima, ostavite svaku opciju praznom i pritisnite Enter svaku opciju. Sada je vaša ljuska naredbenog retka spremna za rad.

Primjer 01: Definirajte podatke o vrsti niza

Dobra je ideja proučiti osnove prije nego što prijeđete na mijenjanje vrijednosti polja u bazi podataka. Ovdje je način određivanja popisa vrsta teksta. Možete vidjeti da je na izlazu prikazan popis vrsta teksta pomoću klauzule SELECT.

>> ODABERITE 'Aqsa, Raza, Saeed' :: text [];

Za vrijeme pisanja upita mora se definirati vrsta podataka. PostgreSQL neće prepoznati vrstu podataka ako se čini da je niz. Alternativno, mogli bismo koristiti format ARRAY [] da bismo ga odredili kao vrstu niza, kao što je prikazano u nastavku u upitu. Iz dolje navedenog izlaza možete vidjeti da su podaci dohvaćeni kao vrsta polja pomoću upita SELECT.

>> ODABERI NIZ [[Aqsa ',' Raza ',' Saeed '];

Kada odaberete isti niz podataka s upitom SELECT dok koristite klauzulu FROM, to neće funkcionirati onako kako bi trebalo. Na primjer, isprobajte donji upit klauzule FROM u ljusci. Provjerit ćete da li će se pojaviti pogreška. To je zato što klauzula SELECT FROM pretpostavlja da su podaci koje dohvaća vjerojatno skupina redaka ili neke točke iz tablice.

>> ODABERI * IZ NIZA ['Aqsa', 'Raza', 'Saeed'];

Primjer 02: Pretvori niz u retke

ARRAY [] je funkcija koja vraća atomsku vrijednost. Kao rezultat, odgovara samo klauzuli SELECT, a ne i klauzuli FROM, jer naši podaci nisu bili u obrascu 'row'. Zbog toga smo dobili pogrešku u gornjem primjeru. Evo kako koristiti funkciju UNNEST za pretvaranje nizova u redove dok vaš upit ne radi s klauzulom.

>> ODABERITE NENEST (ARRAY ['Aqsa', 'Raza', 'Saeed']);

Primjer 03: Pretvaranje redaka u niz

Da bismo redove ponovno pretvorili u niz, moramo definirati taj određeni upit unutar upita da bismo to učinili. Ovdje morate upotrijebiti dva SELECT upita. Interni upit za odabir pretvara niz u retke pomoću funkcije UNNEST. Dok vanjski SELECT upit ponovno pretvara sve te retke u jedan niz, kao što je prikazano na dolje navedenoj slici. Pazi; morate koristiti manji pravopis "polja" u vanjskom SELECT upitu.

>> SELECT niz (SELECT UNNEST (ARRAY ['Aqsa', 'Raza', 'Saeed']));

Primjer 04: Uklonite duplikate pomoću klauzule DISTINCT

DISTINCT vam može pomoći u izdvajanju duplikata iz bilo kojeg oblika podataka. Međutim, nužno zahtijeva upotrebu redaka kao podataka. To znači da ova metoda radi za cijele brojeve, tekst, plutajuće i druge vrste podataka, ali nizovi nisu dopušteni. Da biste uklonili duplikate, prvo morate pretvoriti podatke o vrsti niza u retke metodom UNNEST. Nakon toga, ovi pretvoreni retci podataka proslijedit će se u klauzulu DISTINCT. Možete pogledati izlaz ispod, da je niz pretvoren u retke, tada su dohvaćene samo različite vrijednosti iz ovih redaka pomoću klauzule DISTINCT.

>> ODABERITE RAZLIKUJUĆE GNIJESTE ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []);

Ako vam je kao izlaz potreban niz, upotrijebite funkciju array () u prvom SELECT upitu i upotrijebite DISTINCT klauzulu u sljedećem SELECT upitu. Iz prikazane slike možete vidjeti da je izlaz prikazan u obliku polja, a ne u retku. Iako izlaz sadrži samo različite vrijednosti.

>> SELECT niz (SELECT DISTINCT UNNEST ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: text []));

Primjer 05: Uklonite duplikate dok koristite klauzulu ORDER BY

Također možete ukloniti dvostruke vrijednosti iz niza plutajućeg tipa, kao što je prikazano u nastavku. Zajedno s zasebnim upitom, koristit ćemo klauzulu ORDER BY da bismo dobili rezultat u redoslijedu sortiranja određene vrijednosti. Isprobajte dolje navedeni upit u ljusci naredbenog retka da biste to učinili.

>> ODABERITE RAZLIKUJUĆE GNIJESTE ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) NARUČI DO 1;

Prvo je niz pretvoren u redove pomoću funkcije UNNEST; tada će se ovi redovi sortirati u uzlaznom redoslijedu pomoću klauzule ORDER BY kako je prikazano u nastavku.

Da biste redove ponovno pretvorili u niz, upotrijebite isti SELECT upit u ljusci dok ga koristite s malom abecednom funkcijom polja (). Na donjem izlazu možete baciti pogled da je niz prvo pretvoren u retke, a zatim su odabrane samo različite vrijednosti. Napokon će se redovi ponovno pretvoriti u niz.

>> SELECT niz (SELECT DISTINCT UNNEST ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []));

Zaključak:

Napokon, uspješno ste implementirali svaki primjer iz ovog vodiča. Nadamo se da niste imali problema tijekom izvođenja metode UNNEST (), DISTINCT i array () u primjerima.

Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...
Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...