Shrnutí: V tomto kurzu si ukážeme, jak použít operátor PostgreSQL CAST
pro převod hodnoty jednoho typu na jiný.
Úvod do operátoru PostgreSQL CAST
V mnoha případech chcete převést hodnotu jednoho datového typu na jiný. PostgreSQL vám k tomu poskytuje operátor CAST
, který vám to umožňuje.
Následující obrázek ilustruje syntaxi typu CAST
:
Code language: SQL (Structured Query Language) (sql)
V této syntaxi:
- Nejprve zadejte výraz, kterým může být konstanta, sloupec tabulky, výraz, který se vyhodnocuje na hodnotu.
- Poté zadejte cílový datový typ, na který chcete výsledek výrazu převést.
PostgreSQL type cast :: operator
Kromě syntaxe typu CAST
můžete pro převod hodnoty jednoho typu na jiný použít následující syntaxi:
Code language: SQL (Structured Query Language) (sql)
Podívejte se na následující příklad:
Code language: SQL (Structured Query Language) (sql)
Upozorňujeme, že syntaxe cast s operátorem cast (::) je specifická pro PostgreSQL a neodpovídá standardu SQL
Příklady CAST pro PostgreSQL
Podívejme se na několik příkladů použití operátoru CAST
pro převod hodnoty jednoho typu na jiný.
1) Cast řetězce na celé číslo příklad
Následující příkaz převádí řetězcovou konstantu na celé číslo:
Code language: SQL (Structured Query Language) (sql)
Pokud výraz nelze převést na cílový typ, PostgreSQL vyhodí chybu. Viz následující příklad:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Převod řetězce na datum příklad
Tento příklad používá CAST
k převodu řetězce na datum:
Code language: SQL (Structured Query Language) (sql)
Nejprve jsme převedli 2015-01-01
literální řetězec na January 1st 2015
. Za druhé jsme převedli 01-OCT-2015
na October 1st 2015
.
3) Převod řetězce na dvojnásobek příklad
V následujícím příkladu se pokusíme převést řetězec '10.2'
na dvojnásobnou hodnotu:
Code language: SQL (Structured Query Language) (sql)
Hups, dostali jsme následující chybové hlášení:
Code language: PHP (php)
Chcete-li to napravit, musíte použít DOUBLE PRECISION
místo DOUBLE
následujícím způsobem:
Code language: SQL (Structured Query Language) (sql)
4) Cast a string to a boolean example
Tento příklad používá CAST()
k převodu řetězce ‚true‘, ‚T‘ na true a ‚false‘, ‚F‘ na false:
Code language: SQL (Structured Query Language) (sql)
Tady je výstup:
5) Převod řetězce na časovou značku příklad
Tento příklad používá operátor cast (::) k převodu řetězce na časovou značku:
Code language: SQL (Structured Query Language) (sql)
6) Převod řetězce na interval příklad
Tento příklad používá operátor cast k převodu řetězce na interval:
Code language: SQL (Structured Query Language) (sql)
Tady je výstup:
7) Použití CAST s tabulkovými daty příklad
Nejprve vytvořte tabulku ratings
, která se skládá ze dvou sloupců: id a hodnocení. Datový typ sloupce rating
je VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
Druhé, vložte do tabulky ratings
nějaká ukázková data.
Code language: SQL (Structured Query Language) (sql)
Protože se požadavky mění, použijeme stejnou tabulku ratings
pro uložení hodnocení jako číslo např, 1, 2, 3 místo A, B a C:
Code language: SQL (Structured Query Language) (sql)
Takže tabulka ratings
ukládá smíšené hodnoty včetně číselných a řetězcových.
Code language: SQL (Structured Query Language) (sql)
Nyní musíme všechny hodnoty ve sloupci rating
převést na celá čísla, všechna ostatní hodnocení A, B, C budou zobrazena jako nula. K tomu použijeme výraz CASE
s typem CAST
, jak ukazuje následující dotaz:
Code language: SQL (Structured Query Language) (sql)
Výraz CASE
zkontroluje hodnocení, pokud odpovídá celočíselnému vzoru, převede hodnocení na celé číslo, v opačném případě vrátí 0.
V tomto tutoriálu jste se naučili používat PostgreSQL CAST
k převodu hodnoty jednoho typu na jiný.
- Pomohl vám tento tutoriál?