NCHAR (Transact-SQL)NCHAR (Transact-SQL)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Gibt das Unicode-Zeichen mit dem angegebenen ganzzahligen Code gemäß der Definition durch den Unicode-Standard zurück.Returns the Unicode character with the specified integer code, as defined by the Unicode standard.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

NCHAR ( integer_expression )  

ArgumenteArguments

integer_expressioninteger_expression
Wenn die Sortierung der Datenbank das ergänzende Zeichenflag nicht enthält, entspricht dies einer positiven ganzen Zahl von 0 bis 65535 (0 bis 0xFFFF).When the collation of the database does not contain the supplementary character (SC) flag, this is a positive whole number from 0 through 65535 (0 through 0xFFFF). Wenn ein Wert außerhalb dieses Bereichs angegeben wurde, wird NULL zurückgegeben.If a value outside this range is specified, NULL is returned. Weitere Informationen zu ergänzenden Zeichen finden Sie unter Collation and Unicode Support.For more information about supplementary characters, see Collation and Unicode Support.

Wenn die Sortierung der Datenbank das ergänzende Zeichenflag unterstützt, entspricht dies einer positiven ganzen Zahl von 0 bis 1114111 (0 bis 0x10FFFF).When the collation of the database supports the supplementary character (SC) flag, this is a positive whole number from 0 through 1114111 (0 through 0x10FFFF). Wenn ein Wert außerhalb dieses Bereichs angegeben wurde, wird NULL zurückgegeben.If a value outside this range is specified, NULL is returned.

RückgabetypenReturn Types

NCHAR(1)-Wert Wenn die standarddatenbanksortierung nicht ergänzende Zeichen unterstützt.nchar(1) when the default database collation does not support supplementary characters.

nvarchar(2) Wenn die standarddatenbanksortierung ergänzende Zeichen unterstützt.nvarchar(2) when the default database collation supports supplementary characters.

Wenn der Parameter Integer_expression liegt im Bereich 0 - 0xFFFF liegt, wird nur ein Zeichen zurückgegeben.If the parameter integer_expression lies in the range 0 - 0xFFFF, only one character is returned. Bei höheren Werten gibt NCHAR das entsprechende Ersatzzeichenpaar zurück.For higher values, NCHAR returns the corresponding surrogate pair. Erstellen Sie kein Ersatzzeichenpaar mit NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>).Do not construct a surrogate pair by using NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Verwenden Sie stattdessen eine Datenbanksortierung, die ergänzende Zeichen unterstützt, und geben Sie dann den Unicode-Codepunkt für das Ersatzzeichenpaar an.Instead, use a database collation that supports supplementary characters and then specify the Unicode codepoint for the surrogate pair. Im folgenden Beispiel werden sowohl die alte Methode zur Erstellung eines Ersatzzeichenpaares sowie die bevorzugte Methode zur Angabe des Unicode-Codepunkts erläutert.The following example demonstrates both the old style method of constructing a surrogate pair and the preferred method of specifying the Unicode codepoint.

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));    

BeispieleExamples

A.A. Verwenden von NCHAR und UNICODEUsing NCHAR and UNICODE

Im folgenden Beispiel werden die Funktionen UNICODE und NCHAR zur Ausgabe des UNICODE- und des NCHAR-Wertes (Unicode-Zeichen) des zweiten Zeichens der Zeichenfolge København verwendet sowie zur Ausgabe des tatsächlichen zweiten Zeichens ø.The following example uses the UNICODE and NCHAR functions to print the UNICODE value and the NCHAR (Unicode character) of the second character of the København character string, and to print the actual second character, ø.

DECLARE @nstring nchar(8);  
SET @nstring = N'København';  
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),   
   NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));  
GO  

Im Folgenden finden Sie das Resultset.Here is the result set.

----------- -   
248         ø  
(1 row(s) affected)  

B.B. Verwenden von SUBSTRING, UNICODE, CONVERT und NCHARUsing SUBSTRING, UNICODE, CONVERT, and NCHAR

Im folgenden Beispiel werden die Funktionen SUBSTRING, UNICODE, CONVERT und NCHAR zur Ausgabe der Zeichennummer, des Unicode-Zeichens und des UNICODE-Wertes für jedes Zeichen in der Zeichenfolge København verwendet.The following example uses the SUBSTRING, UNICODE, CONVERT, and NCHAR functions to print the character number, the Unicode character, and the UNICODE value of each character in the string 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  

Im Folgenden finden Sie das Resultset.Here is the result set.

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)  

Siehe auchSee Also

ASCII (Transact-SQL)ASCII (Transact-SQL)
CHAR (Transact-SQL)CHAR (Transact-SQL)
UNICODE (Transact-SQL)UNICODE (Transact-SQL)
Datentypen (Transact-SQL) Data Types (Transact-SQL)
Zeichenfolgenfunktionen ( Transact-SQL )String Functions (Transact-SQL)