Samenvatting: in deze tutorial laten we zien hoe u PostgreSQL CAST
operator kunt gebruiken om een waarde van een type naar een ander type te converteren.
Inleiding tot PostgreSQL CAST operator
Er zijn veel gevallen waarin u een waarde van een gegevenstype in een ander wilt converteren. PostgreSQL biedt u de CAST
operator waarmee u dit kunt doen.
Het volgende illustreert de syntaxis van het type CAST
:
Code language: SQL (Structured Query Language) (sql)
In deze syntaxis:
- Eerst specificeert u een expressie die een constante kan zijn, een tabel kolom, een expressie die evalueert naar een waarde.
- Daarna specificeert u het doel gegevenstype waarnaar u het resultaat van de expressie wilt converteren.
PostgreSQL type cast :: operator
Naast de type CAST
syntaxis, kunt u de volgende syntaxis gebruiken om een waarde van een type in een ander type om te zetten:
Code language: SQL (Structured Query Language) (sql)
Zie het volgende voorbeeld:
Code language: SQL (Structured Query Language) (sql)
Merk op dat de cast syntaxis met de cast operator (::) PostgreSQL-specifiek is en niet voldoet aan de SQL-standaard
PostgreSQL CAST voorbeelden
Laten we enkele voorbeelden nemen van het gebruik van de CAST
operator om een waarde van het ene type om te zetten in een andere.
1) Een string naar een geheel getal converteren voorbeeld
Het volgende statement converteert een stringconstante naar een geheel getal:
Code language: SQL (Structured Query Language) (sql)
Als de expressie niet naar het doeltype kan worden geconverteerd, zal PostgreSQL een foutmelding geven. Zie het volgende voorbeeld:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Een string naar een datum converteren voorbeeld
Dit voorbeeld gebruikt de CAST
om een string naar een datum te converteren:
Code language: SQL (Structured Query Language) (sql)
Eerst hebben we de letterlijke string 2015-01-01
in January 1st 2015
geconverteerd. Ten tweede hebben we 01-OCT-2015
geconverteerd naar October 1st 2015
.
3) Converteer een tekenreeks naar een dubbel voorbeeld
In het volgende voorbeeld proberen we een tekenreeks '10.2'
naar een dubbele waarde te converteren:
Code language: SQL (Structured Query Language) (sql)
Whoops, we krijgen de volgende foutmelding:
Code language: PHP (php)
Om dit op te lossen, moet u DOUBLE PRECISION
gebruiken in plaats van DOUBLE
, als volgt:
Code language: SQL (Structured Query Language) (sql)
4) Cast een string naar een boolean voorbeeld
Dit voorbeeld gebruikt de CAST()
om de string ’true’, ‘T’ om te zetten naar true en ‘false’, ‘F’ naar false:
Code language: SQL (Structured Query Language) (sql)
Hier is de output:
5) Converteer een string naar een timestamp voorbeeld
Dit voorbeeld gebruikt de cast operator (::) om een string naar een timestamp te converteren:
Code language: SQL (Structured Query Language) (sql)
6) Converteer een string naar een interval voorbeeld
Dit voorbeeld gebruikt de cast operator om een string naar een interval te converteren:
Code language: SQL (Structured Query Language) (sql)
Hier is de uitvoer:
7) CAST gebruiken met tabelgegevens voorbeeld
Maak eerst een ratings
tabel die uit twee kolommen bestaat: id en rating. Het gegevenstype van de rating
-kolom is VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
Tweede, voeg wat voorbeeldgegevens in de ratings
-tabel in.
Code language: SQL (Structured Query Language) (sql)
Omdat de vereisten veranderen, gebruiken we dezelfde ratings
-tabel om ratings op te slaan als nummer, bijv, 1, 2, 3 in plaats van A, B, en C:
Code language: SQL (Structured Query Language) (sql)
Dus de ratings
tabel slaat gemengde waarden op, inclusief numerieke en string.
Code language: SQL (Structured Query Language) (sql)
Nu moeten we alle waarden in de rating
kolom omzetten in gehele getallen, alle andere A, B, C ratings zullen worden weergegeven als nul. Om dit te doen, gebruikt u de CASE
expressie met het type CAST
zoals weergegeven in de volgende query:
Code language: SQL (Structured Query Language) (sql)
De CASE
controleert de rating, als deze overeenkomt met het integer patroon, zet het de rating om in een integer, anders retourneert het 0.
In deze Tips & Tricks hebt u geleerd hoe u PostgreSQL CAST
kunt gebruiken om een waarde van het ene type om te zetten in een ander.
- Was deze Tips & Tricks nuttig?
- JaNee