Sdílet prostřednictvím


ASCII (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrátí hodnotu ASCII kódu nejlevějšího znaku znakového výrazu.

Transact-SQL konvence syntaxe

Syntaxe

ASCII ( character_expression )  

Arguments

character_expression

Výraz typu char nebo varchar.

Návratové typy

int

Poznámky

ASCII znamená American Standard Code pro Information Interchange. Slouží jako standard pro kódování znaků pro moderní počítače. Seznam ASCII znaků najdete v sekci Tisknutelné znakyv ASCII .

ASCII je 7bitová znaková sada. Funkce ASCII nepodporuje 8bitové znakové sady, jako jsou rozšířené ASCII nebo High ASCII.

Examples

A. Tento příklad předpokládá znakovou sadu ASCII a vrátí hodnotu ASCII pro šest znaků.

SELECT ASCII('A') AS A, ASCII('B') AS B,   
ASCII('a') AS a, ASCII('b') AS b,  
ASCII(1) AS [1], ASCII(2) AS [2];  

Tady je soubor výsledků.

A           B           a           b           1           2  
----------- ----------- ----------- ----------- ----------- -----------  
65          66          97          98          49          50  

B. Tento příklad ukazuje, jak se správně vrací 7bitová hodnota ASCII, ale 8bitová rozšířená hodnota ASCII není zpracována.

SELECT ASCII('P') AS [ASCII], ASCII('æ') AS [Extended_ASCII];

Tady je soubor výsledků.

ASCII       Extended_ASCII
----------- --------------
80          195

Pokud chcete ověřit, jestli se výsledky mapují na správný bod kódu znaku CHAR , použijte výstupní hodnoty s funkcí nebo NCHAR funkcí:

SELECT NCHAR(80) AS [CHARACTER], NCHAR(195) AS [CHARACTER];

Tady je soubor výsledků.

CHARACTER CHARACTER
--------- ---------
P         Ã

Z předchozího výsledku si všimněte, že znak pro kód 195 je à a ne æ. Je to proto, že ASCII funkce dokáže číst první 7bitový proud, ale ne ten přebytk. Správný kódový bod pro znak æ lze najít pomocí UNICODE funkce, která je schopna nebo vrátit správný kódový bod znaku:

SELECT UNICODE('æ') AS [Extended_ASCII], NCHAR(230) AS [CHARACTER];

Tady je soubor výsledků.

Extended_ASCII CHARACTER
-------------- ---------
230            æ