Podsumowanie: W tym tutorialu pokażemy, jak używać operatora PostgreSQL CAST
do konwersji wartości jednego typu na inny.
Wprowadzenie do operatora PostgreSQL CAST
W wielu przypadkach chcemy przekonwertować wartość jednego typu danych na inny. PostgreSQL udostępnia operator CAST
, który pozwala to zrobić.
Poniżej przedstawiono składnię operatora CAST
:
Code language: SQL (Structured Query Language) (sql)
W tej składni:
- Najpierw określ wyrażenie, które może być stałą, kolumną tabeli lub wyrażeniem obliczanym jako wartość.
- Następnie określ docelowy typ danych, na który chcesz przekonwertować wynik wyrażenia.
PostgreSQL rzutowanie typu :: operator
Poza składnią typu CAST
możesz użyć następującej składni, aby przekonwertować wartość jednego typu na inny:
Code language: SQL (Structured Query Language) (sql)
Zobacz następujący przykład:
Code language: SQL (Structured Query Language) (sql)
Uwaga, że składnia cast z operatorem cast (::) jest specyficzna dla PostgreSQL i nie jest zgodna ze standardem SQL
PostgreSQL CAST przykłady
Poznajmy kilka przykładów użycia operatora CAST
do konwersji wartości jednego typu na inny.
1) Przeliczanie łańcucha na liczbę całkowitą przykład
Następujące wyrażenie konwertuje stałą łańcuchową na liczbę całkowitą:
Code language: SQL (Structured Query Language) (sql)
Jeśli wyrażenie nie może zostać przekonwertowane na typ docelowy, PostgreSQL zgłosi błąd. Zobacz następujący przykład:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Przekształć ciąg znaków na datę przykład
Przykład ten wykorzystuje CAST
do konwersji ciągu znaków na datę:
Code language: SQL (Structured Query Language) (sql)
Po pierwsze, przekonwertowaliśmy 2015-01-01
ciąg znaków na January 1st 2015
. Po drugie, przekonwertowaliśmy 01-OCT-2015
na October 1st 2015
.
3) Cast a string to a double example
W poniższym przykładzie próbujemy przekonwertować ciąg '10.2'
na wartość podwójną:
Code language: SQL (Structured Query Language) (sql)
Whoops, dostaliśmy następujący komunikat o błędzie:
Code language: PHP (php)
Aby to naprawić, musisz użyć DOUBLE PRECISION
zamiast DOUBLE
w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
4) Cast a string to a boolean example
Ten przykład używa CAST()
do konwersji ciągu 'true’, 'T’ na true i 'false’, 'F’ na false:
Code language: SQL (Structured Query Language) (sql)
Here is the output:
5) Konwertowanie łańcucha na znacznik czasu przykład
Ten przykład wykorzystuje operator rzutowania (::) do konwersji łańcucha na znacznik czasu:
Code language: SQL (Structured Query Language) (sql)
6) Konwertowanie łańcucha na interwał przykład
Ten przykład wykorzystuje operator rzutowania do konwersji łańcucha na interwał:
Code language: SQL (Structured Query Language) (sql)
Oto dane wyjściowe:
7) Użycie operatora CAST z danymi tabeli przykład
Na początku utwórz tabelę ratings
, która składa się z dwóch kolumn: id i rating. Typ danych kolumny rating
to VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
Po drugie, wstaw kilka przykładowych danych do tabeli ratings
.
Code language: SQL (Structured Query Language) (sql)
Ponieważ wymagania się zmieniają, używamy tej samej tabeli ratings
do przechowywania ocen jako liczby np, 1, 2, 3 zamiast A, B i C:
Code language: SQL (Structured Query Language) (sql)
Więc tabela ratings
przechowuje wartości mieszane, w tym numeryczne i łańcuchowe.
Code language: SQL (Structured Query Language) (sql)
Teraz musimy przekonwertować wszystkie wartości w kolumnie rating
na liczby całkowite, wszystkie pozostałe oceny A, B, C będą wyświetlane jako zero. Aby to zrobić, używamy wyrażenia CASE
z typem CAST
, jak pokazano w poniższym zapytaniu:
Code language: SQL (Structured Query Language) (sql)
Wyrażenie CASE
sprawdza ocenę, jeśli pasuje do wzorca liczby całkowitej, konwertuje ocenę na liczbę całkowitą, w przeciwnym razie zwraca 0.
W tym poradniku dowiedziałeś się, jak używać PostgreSQL CAST
do konwersji wartości jednego typu na inny.
- Czy ten poradnik był pomocny ?
- TakNie
.