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 CAST
tekstiä 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.