Jak działa CAST w języku SQL? Przykłady zastosowania

Jak działa CAST w języku SQL? Przykłady zastosowania

Podczas pracy z bazami danych bardzo często muszę konwertować jeden typ danych na inny. W SQL jednym z najlepszych narzędzi do tego celu jest funkcja CAST, która pozwala mi na zmianę typu wartości w sposób czytelny i zgodny ze standardem SQL. W tym artykule pokażę, jak działa CAST w języku SQL, jakie są jego zastosowania i jak można go wykorzystać w praktyce.

Co to jest CAST w SQL?

Funkcja CAST to wbudowane narzędzie SQL, które służy do konwersji jednego typu danych na inny. Jest to niezwykle przydatne, gdy muszę porównać wartości różnych typów lub zmienić format danych na potrzeby dalszych operacji.

Ogólna składnia funkcji CAST wygląda tak:

CAST (wyrażenie AS typ_danych)

Gdzie:

  • wyrażenie – wartość, którą chcę przekonwertować.
  • typ_danych – docelowy typ danych, na który chcę dokonać konwersji.

Przykłady zastosowania CAST w SQL

Konwersja liczby na tekst

Załóżmy, że mam kolumnę przechowującą liczby i chcę je zaprezentować jako tekst. Mogę użyć CAST, aby dokonać konwersji:

SELECT CAST(12345 AS VARCHAR(10)) AS wynik;

W wyniku otrzymam tekst '12345', który mogę wykorzystać np. w połączeniach z innymi tekstami.

Konwersja tekstu na liczbę

Kiedy dane przechowywane są jako tekst, ale faktycznie zawierają liczby, mogę użyć CAST, aby je skonwertować na typ numeryczny:

SELECT CAST('12345' AS INT) AS wynik;

W tym przypadku SQL zwróci wartość liczbową 12345, którą mogę wykorzystać w dalszych operacjach matematycznych.

Zmiana formatu daty

Często pracuję z danymi w formacie daty, które trzeba skonwertować do konkretnego typu. Przykładowo:

SELECT CAST('2024-06-01' AS DATE) AS wynik;

W efekcie SQL zwróci wartość w postaci poprawnego formatu daty.

Konwersja wartości NULL

Jeśli mam sytuację, w której funkcja zwraca null, a chcę zamienić go na konkretny typ, mogę zastosować CAST:

SELECT CAST(NULL AS VARCHAR(10)) AS wynik;

Pozwoli mi to na zachowanie zgodności typów, co jest istotne np. podczas łączenia tabel lub wykonywania złożonych operacji.

Różnice między CAST a CONVERT

W niektórych systemach bazodanowych, takich jak Microsoft SQL Server, dostępna jest również funkcja CONVERT. Oto podstawowe różnice:

CAST CONVERT
Zgodny ze standardem SQL Specyficzny dla SQL Server
Prostsza składnia Możliwość formatowania dat i liczb
Bardziej uniwersalny Lepszy w specyficznych scenariuszach w SQL Server

Jeśli zależy mi na przenośności kodu, preferuję CAST. Natomiast gdy pracuję w SQL Server i potrzebuję dodatkowych możliwości formatowania, to wtedy rozważam użycie CONVERT.

Kiedy używać CAST?

CAST jest niezwykle przydatny w wielu sytuacjach, takich jak:

  1. Zmiana typu danych w celu porównywania wartości.
  2. Przygotowanie danych do prezentacji (np. wyświetlenie liczb jako tekstu).
  3. Konwersja danych na potrzeby eksportu.
  4. Obsługa wartości NULL i ich konwersja na inny typ.

Podsumowanie

Funkcja CAST to podstawowe i niezwykle przydatne narzędzie w SQL. Dzięki niej mogę w łatwy sposób konwertować typy danych, co pomaga w wykonywaniu operacji na bazach danych. W większości sytuacji warto korzystać właśnie z niej, zwłaszcza jeśli zależy mi na przenośnym, zgodnym ze standardem SQL kodzie.

 

Inny ciekawy artykuł:

Jak działa GROUP_CONCAT w języku SQL? Przykłady zastosowania

KajoDataSpace