Megosztás a következőn keresztül:


NCHAR (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai 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)