Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Returnerar Unicode-tecknet med den specificerade heltalskoden, enligt Unicode-standarden.
Transact-SQL syntaxkonventioner
Syntax
NCHAR ( integer_expression )
Arguments
integer_expression
När sorteringen av databasen inte innehåller Supplementary Character (SC)- flaggan är detta ett positivt heltal från 0 till 65535 (0 till 0xFFFF). Om ett värde utanför detta intervall anges returneras NULL. För mer information om tilläggstecken, se Collation och Unicode Support.
När databasens sammansättning stödjer SC-flaggan är detta ett positivt heltal från 0 till 1114111 (0 till 0x10FFFF). Om ett värde utanför detta intervall anges returneras NULL.
Returtyper
nchar(1) när standardsorteringen inte stöder kompletterande tecken.
nvarchar(2) när standardsorteringen i databasen stödjer kompletterande tecken.
Om parametern integer_expression ligger i intervallet 0 - 0xFFFF returneras endast ett tecken. För högre värden returnerar NCHAR motsvarande surrogatpar. Konstruera inte ett surrogatpar genom att använda NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Använd istället en databassortering som stödjer kompletterande tecken och ange sedan Unicode-kodpunkten för surrogatparet. Följande exempel demonstrerar både den gamla metoden för att konstruera ett surrogatpar och den föredragna metoden för att specificera Unicode-kodpunkten.
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. Att använda NCHAR och UNICODE
Följande exempel använder UNICODE och NCHAR för att skriva UNICODE ut värdet och (Unicode-tecknet NCHAR ) för det andra tecknet i teckensträngen København , och för att skriva ut det faktiska andra tecknet, ø.
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Här är resultatet.
----------- -
248 ø
(1 row(s) affected)
B. Använder SUBSTRING, UNICODE, CONVERT och NCHAR
Följande exempel använder funktionerna , , , och NCHAR för att skriva ut teckennumret, Unicode-tecknet och UNICODE-värdet för varje tecken i strängen 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
Här är resultatet.
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)
Se även
ASCII (Transact-SQL)
CHAR (Transact-SQL)
UNICODE (Transact-SQL)
Datatyper (Transact-SQL)
Strängfunktioner (Transact-SQL)