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?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.