Summary: I denne tutorial viser vi dig, hvordan du bruger PostgreSQL CAST
-operatoren til at konvertere en værdi af en type til en anden.
Indledning til PostgreSQL CAST-operatoren
Der er mange tilfælde, hvor du ønsker at konvertere en værdi af en datatype til en anden. PostgreSQL giver dig operatoren CAST
, som giver dig mulighed for at gøre dette.
Det følgende illustrerer syntaksen for typen CAST
:
Code language: SQL (Structured Query Language) (sql)
I denne syntaks:
- Først skal du angive et udtryk, som kan være en konstant, en tabelkolonne, et udtryk, der evalueres til en værdi.
- Dernæst skal du angive den måldatatype, som du ønsker at konvertere resultatet af udtrykket til.
PostgreSQL type cast :: operator
Udover type CAST
-syntaksen kan du bruge følgende syntaks til at konvertere en værdi af en type til en anden:
Code language: SQL (Structured Query Language) (sql)
Se følgende eksempel:
Code language: SQL (Structured Query Language) (sql)
Bemærk, at cast-syntaksen med cast-operatoren (::) er PostgreSQL-specifik og er ikke i overensstemmelse med SQL-standarden
PostgreSQL CAST-eksempler
Lad os tage nogle eksempler på at bruge CAST
-operatoren til at konvertere en værdi af en type til en anden.
1) Cast en streng til et heltal eksempel
Den følgende anvisning konverterer en strengkonstant til et heltal:
Code language: SQL (Structured Query Language) (sql)
Hvis udtrykket ikke kan konverteres til måltypen, vil PostgreSQL give en fejl. Se følgende eksempel:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Cast en streng til en dato eksempel
Dette eksempel bruger CAST
til at konvertere en streng til en dato:
Code language: SQL (Structured Query Language) (sql)
Først konverterede vi 2015-01-01
bogstavelig streng til January 1st 2015
. For det andet konverterede vi 01-OCT-2015
til October 1st 2015
.
3) Cast en streng til en dobbeltværdi eksempel
I det følgende eksempel forsøger vi at konvertere en streng '10.2'
til en dobbeltværdi:
Code language: SQL (Structured Query Language) (sql)
Whoops, vi fik følgende fejlmeddelelse:
Code language: PHP (php)
For at rette dette skal du bruge DOUBLE PRECISION
i stedet for DOUBLE
som følger:
Code language: SQL (Structured Query Language) (sql)
4) Cast a string to a boolean example
Dette eksempel bruger CAST()
til at konvertere strengen ‘true’, ‘T’ til true og ‘false’, ‘F’ til false:
Code language: SQL (Structured Query Language) (sql)
Her er outputtet:
Code language: SQL (Structured Query Language) (sql)
Her er resultatet:
5) Konverter en streng til et tidsstempel eksempel
Dette eksempel bruger cast-operatoren (::) til at konvertere en streng til et tidsstempel:
Code language: SQL (Structured Query Language) (sql)
6) Konverter en streng til et interval eksempel
Dette eksempel bruger cast-operatoren til at konvertere en streng til et interval:
Code language: SQL (Structured Query Language) (sql)
Her er resultatet:
7) Brug af CAST med tabeldata eksempel
Først skal du oprette en ratings
tabel, der består af to kolonner: id og rating. Datatypen for rating
-kolonnen er VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
For det andet indsætter du nogle eksempeldata i ratings
-tabellen.
Code language: SQL (Structured Query Language) (sql)
Da kravene ændrer sig, bruger vi den samme ratings
-tabelle til at gemme bedømmelser som antal f.eks, 1, 2, 3 i stedet for A, B og C:
Code language: SQL (Structured Query Language) (sql)
Så ratings
-tabellen gemmer blandede værdier, herunder numeriske værdier og strenge.
Code language: SQL (Structured Query Language) (sql)
Nu skal vi konvertere alle værdier i rating
-kolonnen til hele tal, alle andre A, B, C-vurderinger vil blive vist som nul. For at gøre dette bruger du CASE
-udtrykket med typen CAST
som vist i følgende forespørgsel:
Code language: SQL (Structured Query Language) (sql)
Den CASE
kontrollerer vurderingen, hvis den passer til det hele talmønster, konverterer den vurderingen til et helt tal, ellers returnerer den 0.
I denne vejledning har du lært at bruge PostgreSQL CAST
til at konvertere en værdi af en type til en anden.
- Har denne vejledning været nyttig?
- JaNej