UNICODE (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt laut Definition des Unicode-Standards eine ganze Zahl für das erste Zeichen des Eingabeausdrucks zurück.
Transact-SQL-Syntaxkonventionen
Syntax
UNICODE ( 'ncharacter_expression' )
Argumente
' ncharacter_expression '
Ein nchar- oder nvarchar-Ausdruck.
Rückgabetypen
int
Bemerkungen
In SQL Server-Versionen vor SQL Server 2012 (11.x) und in Azure SQL-Datenbank gibt die UNICODE-Funktion einen UCS-2-Codepunkt im Bereich 000000 bis 00FFFF zurück, mit dem die 65.535 Zeichen in Unicode BMP (Basic Multilingual Plane) dargestellt werden können. Ab SQL Server 2012 (11.x) gilt Folgendes: Wenn eine Sortierung mit aktivierten zusätzlichen Zeichen verwendet wird, gibt UNICODE einen UTF-16-Codepunkt im Bereich 000000 bis 10FFFF zurück. Weitere Informationen zur Unicode-Unterstützung in Datenbank-Engine finden Sie unter Sortierung und Unicode-Unterstützung.
Beispiele
A. Verwenden von UNICODE und der NCHAR-Funktion
Im folgenden Beispiel werden die Funktionen UNICODE
und NCHAR
zur Ausgabe des UNICODE-Werts des ersten Zeichens der Zeichenfolge Åkergatan 24
sowie zur Ausgabe des tatsächlichen ersten Zeichens, Å
, verwendet.
DECLARE @nstring NCHAR(12);
SET @nstring = N'Åkergatan 24';
SELECT UNICODE(@nstring), NCHAR(UNICODE(@nstring));
Hier sehen Sie das Ergebnis.
----------- -
197 Å
B. Verwenden von SUBSTRING, UNICODE und CONVERT
Im folgenden Beispiel werden die Funktionen SUBSTRING
, UNICODE
und CONVERT
zur Ausgabe der Zeichennummer, des Unicode-Zeichens und des UNICODE-Werts für jedes Zeichen in der Zeichenfolge Åkergatan 24
verwendet.
-- 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(12);
-- 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, which
-- indicates that the data following the N is Unicode data.
SET @nstring = N'Åkergatan 24';
-- 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 <= LEN(@nstring)
-- While these are still characters in the character string,
BEGIN;
SELECT @position AS [position],
SUBSTRING(@nstring, @position, 1) AS [character],
UNICODE(SUBSTRING(@nstring, @position, 1)) AS [code_point];
SET @position = @position + 1;
END;
Hier sehen Sie das Ergebnis.
Character # Unicode Character UNICODE Value
----------- ----------------- -----------
1 Å 197
----------- ----------------- -----------
2 k 107
----------- ----------------- -----------
3 e 101
----------- ----------------- -----------
4 r 114
----------- ----------------- -----------
5 g 103
----------- ----------------- -----------
6 a 97
----------- ----------------- -----------
7 t 116
----------- ----------------- -----------
8 a 97
----------- ----------------- -----------
9 n 110
----------- ----------------- -----------
10 32
----------- ----------------- -----------
11 2 50
----------- ----------------- -----------
12 4 52
Weitere Informationen
ASCII (Transact-SQL)
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
Zeichenfolgenfunktionen (Transact-SQL)
Collation and Unicode Support