PostgreSQL

Primeri PostgreSQL UNNEST

Primeri PostgreSQL UNNEST
Stolpec v PostgreSQL lahko določite le kot niz ustreznih vrst podatkov. Vse možnosti so vgrajeni, uporabniško določeni in neodtujljivi podatkovni tipi. Poleg tega so polja v PostgreSQL zelo pomembna. Naučili ste se glede nizov v PostgreSQL, vključno s tem, kako zgraditi, poizvedovati in včasih celo generirati nize z metodo ARRAY. Vendar pa so trenutki, ko bi želel narediti obratno in pretvoriti matriko PostgreSQL v vrstice. Vzrokov, zakaj bi to želeli, je veliko. Recimo, da nekaj časa iščete stičišče dveh nizov. V PostgreSQL lahko operater INTERSECT to učinkovito stori za dva različna niza vrstic. Vendar pa ni primerkov za nize. Podobno operater UNION združi 2 para vrstic; vendar za nize ni nič primerljivega. Zdi se, da je metoda UNNEST skrivnost vsega tega. Med uživanjem UNNEST-a morate biti previdni, saj (tako kot pri večini računalniških sistemov) PostgreSQL naredi vse, kar mu naročite, ne ravno tisto, kar želite,.

Če želite v celoti izdelati ta koncept, v svojem sistemu odprite nameščeno lupino ukazne vrstice PostgreSQL. Navedite ime strežnika, ime baze podatkov, številko vrat, uporabniško ime in geslo za določenega uporabnika, če ne želite začeti delati s privzetimi možnostmi. Če želite delati s privzetimi parametri, pustite vsako možnost prazno in pritisnite Enter vsako možnost. Zdaj je lupina ukazne vrstice pripravljena na delo.

Primer 01: Določite podatke vrste array

Preden preidete na spreminjanje vrednosti matrike v bazi podatkov, je dobro preučiti osnove. Tukaj je način, kako določiti seznam vrst besedila. Ogledate si lahko, da je izhod prikazal seznam vrst besedila s pomočjo stavka SELECT.

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

Med pisanjem poizvedbe je treba določiti vrsto podatkov. PostgreSQL ne bo prepoznal vrste podatkov, če se zdi, da gre za niz. Lahko pa uporabimo format ARRAY [], da ga določimo kot vrsto niza, kot je prikazano spodaj v poizvedbi. Iz spodaj navedenega izhoda lahko vidite, da so bili podatki pridobljeni kot vrsta matrike z uporabo poizvedbe SELECT.

>> SELECT ARRAY ['Aqsa', 'Raza', 'Saeed'];

Ko z uporabo poizvedbe SELECT izberete iste podatke o matriki med uporabo stavka FROM, to ne deluje tako, kot bi moralo. Poskusite na primer spodnjo poizvedbo klavzule FROM v lupini. Preverili boste, ali je prišlo do napake. To pa zato, ker klavzula SELECT FROM predpostavlja, da so podatki, ki jih pridobiva, verjetno skupina vrstic ali nekatere točke iz tabele.

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

Primer 02: Pretvori matriko v vrstice

ARRAY [] je funkcija, ki vrne atomsko vrednost. Posledično se prilega samo stavku SELECT in ne klavzuli FROM, saj naši podatki niso bili v obliki 'vrstice'. Zato smo v zgornjem primeru dobili napako. Tukaj je opisano, kako uporabiti funkcijo UNNEST za pretvorbo nizov v vrstice, medtem ko poizvedba ne deluje s klavzulo.

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

Primer 03: Pretvori vrstice v matriko

Če želite vrstice znova pretvoriti v matriko, moramo določiti to poizvedbo znotraj poizvedbe, da to storimo. Tu morate uporabiti dve poizvedbi SELECT. Notranja izbirna poizvedba pretvori matriko v vrstice s pomočjo funkcije UNNEST. Medtem ko zunanja poizvedba SELECT vse te vrstice ponovno pretvori v eno matriko, kot je prikazano na spodnji sliki. Pazi; v zunanji poizvedbi SELECT morate uporabiti manjše črkovanje 'array'.

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

Primer 04: Odstranite dvojnike s pomočjo klavzule DISTINCT

DISTINCT vam lahko pomaga izvleči dvojnike iz katere koli oblike podatkov. Vendar nujno zahteva uporabo vrstic kot podatkov. To pomeni, da ta metoda deluje za cela števila, besedilo, plavajoče in druge vrste podatkov, vendar polja niso dovoljena. Če želite odstraniti dvojnike, morate podatke vrste array najprej pretvoriti v vrstice z uporabo metode UNNEST. Po tem bodo te pretvorjene podatkovne vrstice posredovane v stavek DISTINCT. Ogledate si lahko spodnji izhod, da je bila matrika pretvorjena v vrstice, nato pa so bile z uporabo stavka DISTINCT pridobljene le različne vrednosti iz teh vrstic.

>> IZBERITE RAZLIČITO NENESTO ('Aqsa, Raza, Saeed, Raza, Uzma, Aqsa' :: besedilo []);

Če za izhod potrebujete polje, uporabite funkcijo array () v prvi poizvedbi SELECT in člen DISTINCT v naslednji poizvedbi SELECT. Iz prikazane slike lahko vidite, da je bil izhod prikazan v obliki matrike, ne v vrstici. Medtem ko izhod vsebuje samo različne vrednosti.

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

Primer 05: Odstranite dvojnike med uporabo stavka ORDER BY

Podvojene vrednosti lahko odstranite tudi iz polja vrste float, kot je prikazano spodaj. Skupaj z ločeno poizvedbo bomo s pomočjo stavka ORDER BY dobili rezultat v vrstnem redu razvrščanja določene vrednosti. Poskusite spodnjo poizvedbo v lupini ukazne vrstice.

>> IZBERITE RAZLIČITO GNESTO ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) NAROČI DO 1;

Najprej je bila matrika pretvorjena v vrstice s funkcijo UNNEST; nato bodo te vrstice razvrščene po naraščajočem vrstnem redu s pomočjo stavka ORDER BY, kot je prikazano spodaj.

Če želite vrstice znova pretvoriti v matriko, uporabite isto poizvedbo SELECT v lupini, medtem ko jo uporabljate z majhno abecedno funkcijo array (). Na spodnjem izhodu lahko pogledate, da je bila matrika najprej pretvorjena v vrstice, nato pa so bile izbrane samo različne vrednosti. Končno bodo vrstice spet pretvorjene v matriko.

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

Zaključek:

Na koncu ste uspešno izvedli vse primere iz tega vodnika. Upamo, da med izvajanjem metode UNNEST (), DISTINCT in array () v primerih ne boste imeli težav.

Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...
Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...