Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Microsoft Fabric
UNISTR ger stöd för Unicode-strängliteraler genom att du kan ange Unicode-kodningsvärdet för tecken i strängen.
UNISTR returnerar De Unicode-tecken som motsvarar indatauttrycket enligt unicode-standarden.
Escape-sekvensen för ett Unicode-tecken kan anges i form av \xxxx eller \+xxxxxx, där xxxx är ett giltigt UTF-16-kodpunktsvärde och xxxxxx är ett giltigt Unicode-kodpunktsvärde. Du kan slå upp Unicode-kodpunktsvärden i Unicode-koddiagram.
Jämfört med funktioner som NCHARger UNISTR ett mer flexibelt och omfattande sätt att hantera Unicode-tecken. Även om NCHAR kan konvertera ett enda Unicode-värde till ett tecken, hanterar UNISTR flera Unicode-värden och escape-sekvenser, vilket gör det enklare att arbeta med komplexa strängar som innehåller olika Unicode-tecken.
Note
UNISTRär tillgängligt i Azure SQL Managed Instance med sql Server 2025- eller always-up-to-date update-principen.
Transact-SQL syntaxkonventioner
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
Viktiga fördelar med UNISTR är:
Stöd för Unicode-escapesekvenser:
UNISTRgör att du kan ange Unicode-tecken med hjälp av escape-sekvenserFlexibilitet med indatatyper:
UNISTRstöder olika teckentyper som char, nchar, varcharoch nvarchar. För tecken och varchar datatyper bör sorteringen vara en giltig UTF-8-sortering.Anpassade escape-tecken: Du kan definiera ett anpassat escape-tecken för att utföra den nödvändiga konverteringen av Unicode-värden till en strängteckenuppsättning.
Pipes-operatorn || är tillgänglig i Azure SQL Managed Instance som konfigurerats med SQL Server 2025 eller Always-up-to-datumuppdateringsprincipen.
Stöd för kodsida
Funktionen UNISTR är inte kompatibel med äldre kodsidor, vilket innebär att den inte stöder sortering som använder teckenuppsättningar som inte är Unicode-teckenuppsättningar. Dessa sorteringar med äldre kodsidor kan identifieras med hjälp av följande fråga.
SELECT DISTINCT p.language,
p.codepage
FROM sys.fn_helpcollations() AS c
CROSS APPLY (VALUES (LEFT(c.name, CHARINDEX('_', c.name) - 1),
COLLATIONPROPERTY(c.name, 'codepage'))) AS p(language, codepage)
WHERE p.codepage NOT IN (
0 /* Unicode Only collation */,
65001 /* UTF-8 code page */
);
Mer information finns i bilaga G DBCS/Unicode-mappningstabeller och bilaga H-kodsidor.
Arguments
'character_expression'
Ett uttryck av valfri teckentyp, till exempel tecken, nchar, varchareller nvarchar. För tecken och varchar datatyper bör sorteringen vara en giltig UTF-8-sortering. Du kan ange antingen strängliteraler eller Unicode- eller UTF-16-kodpunktsvärden eller båda.
character_expression stöder en längd så stor som varchar(max) och nvarchar(max).
N'unicode_escape_character'
Ett enstaka tecken som representerar en användardefinierad Unicode-escape-sekvens. Om det inte anges är standardvärdet \.
Returtyper
Ett strängvärde vars längd och typ beror på indatatyperna.
Examples
A. Använda UNISTR jämfört med funktionen NCHAR
I följande exempel används UNISTR alla funktioner för att utföra den nödvändiga konverteringen av Unicode-värdena till strängteckenuppsättningen för att visa Unicode-tecknet Leende ansikte med öppen mun. Databassortering måste vara en UTF-8-sortering om indata är av tecken eller varchar datatyper.
Använda UNISTR och NCHAR:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Det här exempelexemplet kan också skrivas:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Här är resultatuppsättningen.
-----------
Hello! 😃
B. Använda UNISTR-funktionen med användardefinierat escape-tecken
I följande exempel används funktionen UNISTR med ett anpassat escape-tecken för att utföra den nödvändiga konverteringen av Unicode till en strängteckenuppsättning.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Här är resultatuppsättningen.
-----------
ABCÀƁƇ
C. Använd UNISTR-funktionen genom att kombinera strängliteraler och Unicode-kodpunkter
I följande exempel används UNISTR med ett användardefinierat escape-tecken ($) och ett varchar datatyp med UTF-8-sortering. Den kombinerar strängliteraler med ett Unicode-kodpunktsvärde:
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Här är resultatuppsättningen.
------------------
I ♥ Azure SQL.
D. Använd UNISTR-funktionen för tecken utanför UTF-8-gränsen
Om du behöver använda en teckenuppsättning utöver UTF-8 måste du konvertera teckensekvensen till UTF-8 med hjälp av COLLATE-satsen. Här är ett exempel:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Här är resultatuppsättningen.
Yes_in_Japanese_Hiragana
------------------------
はい