Yhteenveto: Tässä opetusohjelmassa näytämme, miten PostgreSQL CAST -operaattoria käytetään yhden tyypin arvon muuntamiseen toiseen.

PostgreSQL:n CAST-operaattoriin tutustuminen

On olemassa monia tapauksia, joissa halutaan muuntaa yhden tietotyypin arvo toiseksi. PostgreSQL tarjoaa sinulle CAST-operaattorin, jonka avulla voit tehdä tämän.

Seuraavassa havainnollistetaan tyypin CAST syntaksia:

Code language: SQL (Structured Query Language) (sql)

Tässä syntaksissa:

  • Määritä ensin lauseke, joka voi olla vakio, taulukon sarake, lauseke, joka evaluoituu arvoksi.
  • Määritä sitten kohdetietotyyppi, johon haluat muuntaa lausekkeen tuloksen.

PostgreSQL type cast :: operator

Tyypin CAST syntaksin lisäksi voit käyttää seuraavaa syntaksia yhden tyypin arvon muuntamiseen toiseksi:

Code language: SQL (Structured Query Language) (sql)

Katso seuraava esimerkki:

Code language: SQL (Structured Query Language) (sql)

Huomaa, että cast-operaattoria (::) käyttävä cast-syntaksi on PostgreSQL-kohtainen eikä ole SQL-standardin mukainen

PostgreSQL CAST -esimerkkejä

Katsotaanpa muutamia esimerkkejä CAST-operaattorin käyttämisestä yhden tyypin arvon muuntamiseen toiseksi.

1) Castaa merkkijono kokonaisluvuksi esimerkki

Seuraavalla lausekkeella muunnetaan merkkijonovakio kokonaisluvuksi:

Code language: SQL (Structured Query Language) (sql)

Jos lauseketta ei pystytä muuntamaan kohdetyypiksi, PostgreSQL antaa virheilmoituksen. Katso seuraava esimerkki:

Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)

2) Muunna merkkijono päivämääräksi esimerkki

Tässä esimerkissä käytetään CAST:tä merkkijonon muuntamiseen päivämääräksi:

Code language: SQL (Structured Query Language) (sql)

Aluksi muunnimme 2015-01-01 kirjaimellisen merkkijonon January 1st 2015:ksi. Toiseksi muunnimme 01-OCT-2015 muotoon October 1st 2015.

3) Cast a string to a double example

Seuraavassa esimerkissä yritämme muuntaa merkkijonon '10.2' double-arvoksi:

Code language: SQL (Structured Query Language) (sql)

Hups, saimme seuraavan virheilmoituksen:

Code language: PHP (php)

Korjataksemme tämän, sinun on käytettävä DOUBLE:n sijasta DOUBLE PRECISION seuraavasti:

Code language: SQL (Structured Query Language) (sql)

4) Cast a string to a boolean example

Tässä esimerkissä käytetään CAST():tä muuttamaan merkkijono ’true’, ’T’ true:ksi ja ’false’, ’F’ false:

Code language: SQL (Structured Query Language) (sql)

Tässä on tuloste:

5) Muunna merkkijono aikaleimaksi esimerkki

Tässä esimerkissä käytetään cast-operaattoria (::) muuttamaan merkkijono aikaleimaksi:

Code language: SQL (Structured Query Language) (sql)

6) Muunna merkkijono aikaväliksi esimerkki

Tässä esimerkissä käytetään cast-operaattoria muuttamaan merkkijono aikaväliksi:

Code language: SQL (Structured Query Language) (sql)

Tässä on tuloste:

7) CASTin käyttäminen taulukkotietojen kanssa esimerkki

Luo ensin ratings-taulu, joka koostuu kahdesta sarakkeesta: id ja rating. Sarakkeen rating tietotyyppi on VARCHAR(1):

Code language: SQL (Structured Query Language) (sql)

Toiseksi lisätään ratings-taulukkoon joitakin esimerkkitietoja.

Code language: SQL (Structured Query Language) (sql)

Koska vaatimukset muuttuvat, käytämme samaa ratings-taulukkoa luokitusten tallentamiseen numerona esim, 1, 2, 3 A:n, B:n ja C:n sijaan:

Code language: SQL (Structured Query Language) (sql)

Taulukkoon ratings tallennetaan siis sekalaisia arvoja, mukaan lukien numeerisia arvoja ja merkkijonoja.

Code language: SQL (Structured Query Language) (sql)

Nyt meidän on muunnettava kaikki sarakkeessa rating olevat arvot kokonaisluvuiksi, ja kaikki muut A-, B- ja C-luokitukset näytetään nollana. Tätä varten käytetään CASE-lauseketta, jonka tyyppi on CAST, kuten seuraavassa kyselyssä näytetään:

Code language: SQL (Structured Query Language) (sql)

CASE tarkistaa luokituksen, jos se vastaa kokonaislukumallia, se muuntaa luokituksen kokonaisluvuksi, muutoin se palauttaa 0.

Tässä opetusohjelmassa olet oppinut käyttämään PostgreSQL CAST:ää yhden tyypin arvon muuntamiseen toiseksi.

  • Oliko tästä opetusohjelmasta apua?
  • KylläEi

Vastaa

Sähköpostiosoitettasi ei julkaista.