„Ať teprve začínáte, nebo jste zkušený vývojář, setkáte se s převodem typů. Konverze typu se týká procesu převodu hodnoty nebo výrazu z jednoho datového typu na jiný kompatibilní datový typ.
V tomto příspěvku budeme diskutovat o použití funkce cast() na serveru SQL Server k převodu hodnoty nebo výrazu z jednoho typu na jiný.
Funkce Cast serveru SQL
Následující úryvek ukazuje syntaxi funkce cast().
OBSAZENÍ ( výraz TAK JAKO datový typ [ ( DÉLKA ) ] )
Funkce přijímá následující parametry:
- výraz – jakýkoli platný výraz.
- datový_typ – nastavuje cílový datový typ.
- délka – volitelná celočíselná hodnota definovaná jako délka cílového datového typu (pouze u podporovaných typů).
Funkce pak vrátí výraz převedený na cílový datový_typ.
Použijme příklady k ilustraci toho, jak můžeme použít funkci cast.
Použití funkce Cast k převodu řetězce na celé číslo
Následující příklad používá funkci cast k převodu vstupního řetězce na celočíselnou hodnotu.
VYBRAT
OBSAZENÍ ( '100' TAK JAKO INT ) TAK JAKO výstupní_hodnota;
Výsledný výstup:
výstupní_hodnota |------------+
100 |
Použití funkce Cast k převodu desítkové soustavy na Int
Druhý příklad níže používá funkci cast k převodu desítkového typu na int.
VYBRATOBSAZENÍ ( 3,14159 TAK JAKO INT ) TAK JAKO výstupní_hodnota;
Funkce cast zaokrouhlí vstupní desetinné místo na nejbližší celé číslo, jak je znázorněno:
výstupní_hodnota |------------+
3 |
Použití funkce Cast k převodu řetězce na datum a čas
Můžeme také použít funkci cast k převodu daného vstupního řetězce na hodnotu datetime. Příklad ilustrace je uveden níže:
VYBRATOBSAZENÍ ( '2022-10-10' TAK JAKO čas schůzky ) TAK JAKO výstupní_hodnota;
Výsledný výstup:
výstupní_hodnota |------------------------+
2022 - 10 - 10 00:00: 00 000 |
Použití funkce Cast ve sloupci tabulky
Můžeme také použít funkci cast na konkrétní sloupec a převést řádky z tohoto sloupce na jiný datový typ.
Předpokládejme například, že máme tabulku:
Hodnoty sloupce size_on_disk můžeme převést na celá čísla, jak je znázorněno:
VYBRATnázev_serveru ,
OBSAZENÍ ( velikost_na_disku TAK JAKO INT ) TAK JAKO appx_size
Z
záznamy;
Výsledná tabulka vypadá takto:
Jak vidíme, výsledný výstup je vyjádřen jako celočíselné hodnoty (zaokrouhlené).
POZNÁMKA: Je dobré mít na paměti, že existují různé typy převodů.
- Implicitní převod – stroj SQL Server automaticky použije operaci převodu tak, aby co nejlépe odpovídala požadované operaci.
- Explicitní konverze – ručně provedená uživatelem voláním konverzních funkcí, jako je cast() a convert().
Následující graf ukazuje, jaké typy můžete převádět, jaký typ převodu byl použit a další.
Zdroj: Microsoft
Vynulování
Děkujeme, že jste si přečetli tento návod. Věříme, že jste se z tohoto průvodce naučili něco nového.