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 ratingstabel, 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)

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.