Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview
AzureSQL Database Azure SQL Managed Instance
SQL-database
in Microsoft Fabric Preview
UNISTR biedt ondersteuning voor letterlijke unicode-tekenreeksen door de Unicode-coderingswaarde van tekens in de tekenreeks op te geven.
UNISTR retourneert de Unicode-tekens die overeenkomen met de invoerexpressie, zoals gedefinieerd door de Unicode-standaard.
De escapereeks voor een Unicode-teken kan worden opgegeven in de vorm van \xxxx of \+xxxxxx, waarbij xxxx een geldige UTF-16-codepuntwaarde is en xxxxxx een geldige Unicode-codepuntwaarde is. U kunt Unicode-codepuntwaarden opzoeken in de Unicode-codegrafieken.
Vergeleken met functies zoals NCHARbiedt UNISTR een flexibelere en uitgebreidere manier om Unicode-tekens te verwerken. Hoewel NCHAR bijvoorbeeld één Unicode-waarde naar een teken kan converteren, UNISTR meerdere Unicode-waarden en escapereeksen verwerkt, zodat u gemakkelijker kunt werken met complexe tekenreeksen die verschillende Unicode-tekens bevatten.
Note
UNISTRis beschikbaar in Azure SQL Managed Instance met het updatebeleid voor SQL Server 2025 of Always-up-to-date update.
Transact-SQL syntaxisconventies
Syntax
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Remarks
Belangrijke voordelen van UNISTR zijn:
Ondersteuning voor Unicode-escapereeksen:
UNISTRkunt u Unicode-tekens opgeven met behulp van escapereeksenFlexibiliteit met invoertypen:
UNISTRondersteunt verschillende tekentypen, zoals teken, nchar, varcharen nvarchar. Voor teken en varchar gegevenstypen moet de sortering een geldige UTF-8-sortering zijn.aangepaste escapetekens: u kunt een aangepast escape-teken definiëren om de benodigde conversie van Unicode-waarden uit te voeren in een tekenreekstekenset.
De || pipes-operator is beschikbaar in Azure SQL Managed Instance dat is geconfigureerd met het SQL Server 2025- of Always-up-to-dateupdatebeleid.
Ondersteuning voor codepagina's
De UNISTR-functie is niet compatibel met verouderde codepagina's, wat betekent dat deze geen sorteringen ondersteunt die gebruikmaken van niet-Unicode-tekensets. Deze sorteringen met verouderde codepagina's kunnen worden geïdentificeerd met behulp van de volgende query.
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 */
);
Zie bijlage G DBCS/Unicode-toewijzingstabellen en bijlage H-codepagina'svoor meer informatie.
Arguments
'character_expression'
Een expressie van elk tekentype, zoals teken, nchar, varcharof nvarchar. Voor teken en varchar gegevenstypen moet de sortering een geldige UTF-8-sortering zijn. U kunt letterlijke tekenreekswaarden of Unicode- of UTF-16-codepuntwaarden of beide opgeven.
character_expression ondersteunt een lengte die zo groot is als varchar(max) en nvarchar(max).
N'unicode_escape_character'
Eén teken dat een door de gebruiker gedefinieerde Unicode-escapereeks vertegenwoordigt. Als deze niet is opgegeven, wordt de standaardwaarde \.
Retourtypen
Een tekenreekswaarde waarvan de lengte en het type afhankelijk zijn van de invoertypen.
Examples
A. UNISTR gebruiken versus de functie NCHAR
In de volgende voorbeelden worden alle UNISTR functies gebruikt om de benodigde conversie van de Unicode-waarden uit te voeren in tekenreekstekenset, om het Unicode-teken glimlachend gezicht met open mond weer te geven. De databasesortering moet een UTF-8-sortering zijn als de invoer van teken of varchar gegevenstypen is.
Met behulp van UNISTR en NCHAR:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
Dit voorbeeldvoorbeeld kan ook worden geschreven:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
Dit is de resultatenset.
-----------
Hello! 😃
B. UNISTR-functie gebruiken met door de gebruiker gedefinieerd escape-teken
In het volgende voorbeeld wordt de functie UNISTR met een aangepast escape-teken gebruikt om de benodigde conversie van unicode uit te voeren in een tekenreekstekenset.
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
Dit is de resultatenset.
-----------
ABCÀƁƇ
C. De functie UNISTR gebruiken door letterlijke tekenreeksen en Unicode-codepunten te combineren
In het volgende voorbeeld wordt UNISTR gebruikt met een door de gebruiker gedefinieerd escape-teken ($) en een varchar gegevenstype met UTF-8-sortering. Hiermee worden letterlijke tekenreeksen gecombineerd met een Unicode-codepuntwaarde:
SELECT UNISTR('I $2665 Azure SQL.' COLLATE Latin1_General_100_CI_AS_KS_SC_UTF8, '$');
Dit is de resultatenset.
------------------
I ♥ Azure SQL.
D. De functie UNISTR gebruiken voor tekens die buiten de UTF-8-limiet komen
Als u een tekenset buiten UTF-8 wilt gebruiken, moet u de tekenreeks converteren naar UTF-8 met behulp van de COLLATE-component. Hier volgt een voorbeeld:
SELECT UNISTR('\306F\3044' COLLATE Latin1_General_100_BIN2_UTF8) AS Yes_in_Japanese_Hiragana;
Dit is de resultatenset.
Yes_in_Japanese_Hiragana
------------------------
はい