
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:
- Zmiana typu danych w celu porównywania wartości.
- Przygotowanie danych do prezentacji (np. wyświetlenie liczb jako tekstu).
- Konwersja danych na potrzeby eksportu.
- 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
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.