Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrací znak Unicode s určeným celočíselným kódem, jak je definován standardem Unicode.
Syntaxe
NCHAR ( integer_expression )
Arguments
integer_expression
Pokud srovnání databáze neobsahuje příznak Supplementary Character (SC), jedná se o kladné celé číslo od 0 do 65535 (0 až 0xFFFF). Pokud je zadána hodnota mimo tento rozsah, vrátí se NULL. Pro více informací o doplňkových znacích viz Podpora třídění a Unicode.
Když kolekce databáze podporuje SC příznak, jedná se o kladné celé číslo od 0 do 1114111 (0 až 0x10FFFF). Pokud je zadána hodnota mimo tento rozsah, vrátí se NULL.
Návratové typy
nchar(1), když výchozí třídění databáze nepodporuje doplňkové znaky.
nvarchar(2), když výchozí třídění databáze podporuje doplňkové znaky.
Pokud parametr integer_expression leží v rozsahu 0 - 0xFFFF, vrátí se pouze jeden znak. Pro vyšší hodnoty NCHAR vrací odpovídající náhradní pár. Nekonstruujte náhradní pár pomocí .NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>) Místo toho použijte databázovou kolekci podporující doplňkové znaky a poté specifikujte Unicode kódový bod pro náhradní pár. Následující příklad ukazuje jak staromódní metodu konstrukce náhradního páru, tak preferovanou metodu specifikace kódového bodu Unicode.
CREATE DATABASE test COLLATE Finnish_Swedish_100_CS_AS_SC;
DECLARE @d NVARCHAR(10) = N'𣅿';
-- Old style method.
SELECT NCHAR(0xD84C) + NCHAR(0xDD7F);
-- Preferred method.
SELECT NCHAR(143743);
-- Alternative preferred method.
SELECT NCHAR(UNICODE(@d));
Examples
A. Použití NCHAR a UNICODE
Následující příklad používá UNICODE funkce a NCHAR k vytištění UNICODE hodnoty a NCHAR (Unicode znaku) druhého znaku København řetězce znaků a k vytištění skutečného druhého znaku, ø.
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Tady je soubor výsledků.
----------- -
248 ø
(1 row(s) affected)
B. Použití SUBSTRING, UNICODE, CONVERT a NCHAR
Následující příklad používá , , , a NCHAR funkce k vytištění čísla znaku, znaku Unicode a hodnoty UNICODE každého znaku v řetězci København. CONVERTUNICODESUBSTRING
-- The @position variable holds the position of the character currently
-- being processed. The @nstring variable is the Unicode character
-- string to process.
DECLARE @position INT, @nstring NCHAR(9);
-- Initialize the current position variable to the first character in
-- the string.
SET @position = 1;
-- Initialize the character string variable to the string to process.
-- Notice that there is an N before the start of the string. This
-- indicates that the data following the N is Unicode data.
SET @nstring = N'København';
-- Print the character number of the position of the string you are at,
-- the actual Unicode character you are processing, and the UNICODE
-- value for this particular character.
PRINT 'Character #' + ' ' + 'Unicode Character' + ' ' + 'UNICODE Value';
WHILE @position <= DATALENGTH(@nstring)
BEGIN
SELECT @position,
NCHAR(UNICODE(SUBSTRING(@nstring, @position, 1))),
CONVERT(NCHAR(17), SUBSTRING(@nstring, @position, 1)),
UNICODE(SUBSTRING(@nstring, @position, 1))
SELECT @position = @position + 1
END;
GO
Tady je soubor výsledků.
Character # Unicode Character UNICODE Value
----------- ---- ----------------- -----------
1 K K 75
(1 row(s) affected)
----------- ---- ----------------- -----------
2 ø ø 248
(1 row(s) affected)
----------- ---- ----------------- -----------
3 b b 98
(1 row(s) affected)
----------- ---- ----------------- -----------
4 e e 101
(1 row(s) affected)
----------- ---- ----------------- -----------
5 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
6 h h 104
(1 row(s) affected)
----------- ---- ----------------- -----------
7 a a 97
(1 row(s) affected)
----------- ---- ----------------- -----------
8 v v 118
(1 row(s) affected)
----------- ---- ----------------- -----------
9 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
10 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
11 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
12 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
13 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
14 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
15 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
16 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
17 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
18 NULL NULL
(1 row(s) affected)
Viz také
ASCII (Transact-SQL)
ZNAK (Transact-SQL)
UNICODE (Transact-SQL)
Datové typy (Transact-SQL)