Bevezetés
A PostgreSQL-ben tárolt adatokkal való munka során előfordulhat, hogy vannak olyan adatok, amelyeket más adattípusként szeretne kezelni. Például lehet, hogy van egy szöveges értéke, amely egy számot képvisel, például “53”. Ahhoz, hogy számításokat végezzen ezen az értéken, lehet, hogy több értelme van az értéket egész számmá konvertálni. A Postgres-ben az CAST
függvényt arra használjuk, hogy egy érték adattípusát más adattípussá konvertáljuk. Az értéknek kompatibilisnek kell lennie a megcélzott adattípussal, ellenkező esetben hibaüzenet érkezik vissza. Ebben a PostgreSQL cikkben megmutatjuk, hogyan kell használni a PostgreSQL CAST
függvényt, és áttekintünk néhány példát a különböző konverziókra.
Előfeltételek
A bemutató folytatása előtt két kulcsfontosságú előfeltételnek kell teljesülnie:
- A PostgreSQL-nek telepítve és konfigurálva kell lennie a számítógépén.
- Legyen némi alapismerete a PostgreSQL-ről.
PostgreSQL CAST függvény
A PostgreSQL-ben kétféleképpen lehet CAST
egy értéket megadni. Az első módszernél a CAST
függvény zárójelén belül adjuk meg az értéket és a megcélzott adattípust. A szintaxis az alábbiakban látható:
1
|
SELECT CAST ( VALUE AS TYPE )
|
A másik módja az érték castingolásának az érték és a célzott adattípus közötti ::
jelölés használata. Az alábbi szintaxis látható:
1
|
SELECT VALUE::TYPE
|
Ebben a szintaxisban a value
jelöli az értéket, amelyet castolni vagy az adattípust módosítani szeretnénk.A type
azt az adattípust jelöli, amelyre ezt az értéket célozza; a type
néhány lehetséges értéke a INTEGER
, FLOAT
és CHAR
.
Postgres CAST példa
Nézzünk néhány példát a Postgres CAST
függvény használatára.
Postgres CAST to String
Az első példánkban egy értéket sztring értékként fogunk castolni. A következő SELECT
utasításban láthatjuk, hogyan történik ez:
1
2 3 4 5 |
SELECT CAST( 5137 AS TEXT );
text —— 5137 (1 ROW) |
Postgres CAST to Integer
A következőkben egy szöveg típusú értéket konvertálunk egész számmá. A következő utasítás mutatja, hogyan történik ez:
1
2 3 4 5 |
SELECT CAST( ‘214’ AS INTEGER );
int4 —— 214 (1 ROW) |
Az alábbi példában egy egész értéket castolunk a MONEY
adattípusba. Ennek működését a következő utasításban láthatjuk:
1
2 3 4 5 |
SELECT CAST(7419 AS MONEY);
pénz ———– $7,419.00 (1 ROW) |
Postgres CAST to Interval
A következő példánkban egy szöveges értéket fogunk a INTERVAL
adattípusba castolni. A következő SELECT
utasítás mutatja be, hogyan működik:
1
2 3 4 5 |
SELECT CAST (‘1 év 2 hónap 7 nap’ AS INTERVAL);
INTERVAL ———————- 1 ÉV 2 hónap 7 nap (1 ROW) |
Postgres CAST to Date
A CAST
függvényt használhatjuk egy szöveges érték DATE
adattípussá alakítására is, ahogy az alábbi példában látható:
1
2 3 4 5 |
SELECT CAST( ‘July 24, 1999’ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Itt egy másik módja annak, hogy CAST
szöveget adjunk meg dátumként:
1
2 3 4 5 |
SELECT CAST( ’24-07-99′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Postgres CAST With Trim
Az alábbi példában egy szöveges értéket vágunk le, majd a TRIM
-ről visszakapott eredményt castoljuk:
1
2 3 4 5 |
SELECT CAST( TRIM( LEADING ‘DATE ‘ FROM ‘DATE January 28, 1998’ ) AS DATE);
ltrim ———— 1998-01-28 (1 ROW) |
Postgres CAST With Concatenation
Két vagy több karakterláncot a ||
operátorral tudunk összekapcsolni. Utolsó példánkban egy sztringértéket fogunk egy dátumértékkel egybekötni, amelyet TEXT
-ra castolunk. Az alábbi utasítás mutatja, hogy ez hogyan történik:
1
2 3 4 5 |
SELECT ‘The current date is ‘ || CAST( CURRENT_DATE AS TEXT );
?COLUMN? ——————————– The CURRENT DATE IS 2020-03-28 (1 ROW) |
Következtetés
Az adatok lekérdezésekor a PostgreSQL-ben előfordulhat, hogy bizonyos oszlopok értékeit más adattípusra szeretnénk konvertálni. Az adattípus megváltoztatása megkönnyítheti a számítások és feldolgozási műveletek elvégzését a visszaküldött adatokon. Ebben a cikkben bemutattuk, hogyan használhatja a Postgres CAST függvényét egy érték adattípusának átalakítására. Ha a cikkben bemutatott összes példát végigkövette, akkor a CAST
függvényt hatékonyan tudja majd használni a saját PostgreSQL lekérdezéseiben.