Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
A Unicode karaktert adja vissza a megadott egész számkóddal, ahogy azt a Unicode szabvány definiálja.
Transact-SQL szintaxis konvenciók
Szemantika
NCHAR ( integer_expression )
Arguments
integer_expression
Ha az adatbázis összeállítása nem tartalmazza a kiegészítő karakter (SC) zászlót, akkor ez egy pozitív egész szám 0-tól 65535-ig (0-tól 0xFFFF-ig). Ha ezen a tartományon kívül lévő értéket megadnak, akkor NULL értéket adnak vissza. További információért a kiegészítő karakterekről lásd: Collation and Unicode támogatás.
Ha az adatbázis összeállítása támogatja az SC zászlót, ez egy pozitív egész szám 0-tól 1114111-ig (0-tól 0x10FFFF-ig). Ha ezen a tartományon kívül lévő értéket megadnak, akkor NULL értéket adnak vissza.
Visszatérési típusok
nchar(1) néven, amikor az alapértelmezett adatbázis-összeállítás nem támogatja kiegészítő karaktereket.
nvarchar(2) esetén , amikor az alapértelmezett adatbázis-összeállítás kiegészítő karaktereket támogat.
Ha a integer_expression paraméter a 0 - 0xFFFF tartományban van, akkor csak egy karakter jelenik meg. Magasabb értékeknél az NCHAR a megfelelő helyettesítő párt adja vissza. Ne építs helyettesítő párt .NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>) Ehelyett használj egy adatbázis-összeállítást, amely támogatja a kiegészítő karaktereket, majd megadjuk a helyettesítő pár Unicode kódpontját. A következő példa bemutatja mind a régi stílusú helyettesítő pár létrehozásának módszerét, mind a Unicode kódpont meghatározásának preferált módszerét.
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));
Példák
A. NCHAR és UNICODE használata
A következő példa az UNICODE és NCHAR függvényeket használja a karakterlánc második karakterének København értékének és NCHAR (Unicode karakterének) nyomtatásáraUNICODE, valamint a tényleges második karakter nyomtatására, ø.
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Itt van az eredmények összessége.
----------- -
248 ø
(1 row(s) affected)
B. SUBSTRING, UNICODE, CONVERT és NCHAR használatával
A következő példa a SUBSTRING, UNICODE, CONVERT, és NCHAR függvényeket használja a karakterszám, a Unicode karakter és a UNICODE érték nyomtatásához a stringben København.
-- 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
Itt van az eredmények összessége.
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)
Lásd még:
ASCII (Transact-SQL)
CHAR (Transact-SQL)
UNICODE (Transact-SQL)
adattípusok (Transact-SQL)
sztringfüggvények (Transact-SQL)