Esittely

Kun työskentelet PostgreSQL:ään tallennettujen tietojen kanssa, sinulla saattaa olla joitakin tietoja, joita haluaisit käsitellä mieluummin eri tietotyyppinä. Sinulla voi esimerkiksi olla tekstiarvo, joka edustaa numeroa, kuten ”53”. Jotta voit suorittaa laskutoimituksia kyseiselle arvolle, saattaa olla järkevämpää muuntaa arvo kokonaisluvuksi. Postgresissa CAST-funktiota käytetään arvon tietotyypin muuntamiseen eri tietotyypiksi. Arvon on oltava yhteensopiva tavoitellun tietotyypin kanssa, muuten palautetaan virheilmoitus. Tässä PostgreSQL-artikkelissa näytämme, miten PostgreSQL:n CAST-funktiota käytetään, ja käymme läpi muutamia esimerkkejä erilaisista muunnoksista.

Edellytykset

Ennen kuin jatkat tämän opetusohjelman parissa, kaksi keskeistä ennakkoedellytystä on oltava kunnossa:

  • Tietokoneellasi on oltava asennettuna ja määritettynä PostgreSQL.
  • Sinulla on oltava perustiedot PostgreSQL:stä.

PostgreSQL:n CAST-funktio

PostgreSQL:ssä on kaksi tapaa CAST saada arvo. Ensimmäisessä tavassa määritetään arvo ja tavoiteltu tietotyyppi CAST-funktion sulkujen sisällä. Syntaksi on esitetty alla:

1
SELECT CAST ( VALUE AS TYPE )

Toinen tapa castata arvo on käyttää arvon ja kohdennetun tietotyypin välissä ::-merkintää. Näet syntaksin alla:

1
SELECT VALUE::TYPE

Tässä syntaksissa value edustaa arvoa, jonka haluat castata tai vaihtaa tietotyyppiä.type edustaa tietotyyppiä, johon kohdistat tämän arvon; muutamia mahdollisia type:n arvoja ovat INTEGER, FLOAT ja CHAR.

Postgres CAST Esimerkki

Katsotaanpa muutamia esimerkkejä Postgresin CAST-funktion käytöstä.

Postgres CAST to String

Ensimmäisessä esimerkissämme castataan arvo merkkijonoarvoksi. Näemme, miten tämä tehdään seuraavassa SELECT-lauseessa:

1
2
3
4
5
SELECT CAST( 5137 AS TEXT );
text
——
5137
(1 ROW)

Postgres CAST to Integer

Seuraavaksi muunnetaan tekstityyppinen arvo kokonaisluvuksi. Seuraava lauseke näyttää, miten se tehdään:

1
2
3
4
5
SELECT CAST( ’214’ AS INTEGER );
int4
——
214
(1 ROW)

Alhaalla esitetyssä esimerkissä castataan kokonaislukuarvo tietotyypiksi MONEY. Näemme, miten se toimii seuraavassa lausekkeessa:

1
2
3
4
4
5
SELECT CAST(7419 AS MONEY);
rahaa
———–
7,419$.00
(1 ROW)

Postgres CAST to Interval

Seuraavassa esimerkissämme castataan tekstiarvo tietotyypiksi INTERVAL. Seuraava SELECT-lause osoittaa, miten se toimii:

1
2
3
4
5
SELECT CAST (’1 vuosi 2 kuukautta 7 päivää’ AS INTERVAL);
INTERVAL
———————-
1 VUOSI 2 KUUKAUTTA 7 PÄIVÄÄ
(1 ROW)

Postgres CAST to Date

Voidaan myös käyttää CAST-funktiota tekstiarvon muuntamiseen DATE-tietotyypiksi, kuten alla olevassa esimerkissä:

1
2
3
4
5
SELECT CAST( ’24. heinäkuuta 1999′ AS DATE );
DATE
————
1999-07-24
(1 ROW)

Tässä on toinen tapa CASTtekstiä päivämääränä:

1
2
3
4
5
SELECT CAST( ’24-07-99′ AS DATE );
DATE
————
1999-07-24
(1 ROW)

Postgres CAST With Trim

Alhaalla esitetyssä esimerkissä leikataan tekstiarvo, jonka jälkeen castataan tulos, joka palautetaan TRIM:

1
2
3
4
5
SELECT CAST( TRIM( LEADING ’PÄIVÄYS ’ FROM ’PÄIVÄYTYS 28. tammikuuta 1998’ ) AS PÄIVÄYTYS);
ltrim
————
1998-01-28
(1 ROW)

Postgres CAST With Concatenation

Voidaan ketjuttaa kaksi tai useampia merkkijonoja ||-operaattorilla. Viimeisessä esimerkissämme ketjutamme merkkijonon arvon päivämäärän arvoon, joka on valettu muotoon TEXT. Alla oleva lauseke näyttää, miten se tehdään:

1
2
3
4
4
5
SELECT ’Tämänhetkinen päivämäärä on ’ || CAST( CURRENT_DATE AS TEXT );
?COLUMN?
——————————–
The CURRENT DATE IS 2020-03-28
(1 ROW)

Johtopäätös

Kun teet tietopyyntöjä PostgreSQL:ssä, saatat haluta, että tiettyjen sarakkeiden arvot muunnetaan eri tietotyyppiin. Tietotyypin muuttaminen voi helpottaa laskelmien ja käsittelyoperaatioiden suorittamista palautetuille tiedoille. Tässä artikkelissa näytimme, miten Postgresin CAST-funktiota käytetään arvon tietotyypin muuntamiseen. Jos olet seurannut kaikkia tässä artikkelissa esitettyjä esimerkkejä, pystyt käyttämään CAST-funktiota tehokkaasti omissa PostgreSQL-kyselyissäsi.

Vastaa

Sähköpostiosoitettasi ei julkaista.