Anteckning
Å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
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
Den här funktionen söker efter ett teckenuttryck i ett andra teckenuttryck och returnerar startpositionen för det första uttrycket om det hittas.
Transact-SQL syntaxkonventioner
Syntax
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
Arguments
expressionToFind
Ett teckenuttryck som innehåller sekvensen som ska hittas. expressionToFind har en gräns på 8 000 tecken.
expressionToSearch
Ett teckenuttryck att söka efter.
start_location
Ett heltal eller bigint-uttryck där sökningen startar. Om start_location inte anges, har ett negativt värde eller har ett nollvärde (0) startar sökningen i början av expressionToSearch.
Returtyper
bigint if expressionToSearch har datatypen nvarchar(max),varbinary(max)eller varchar(max).annars.
Anmärkningar
Om uttrycket expressionToFind eller expressionToSearch har en Unicode-datatyp (nchar eller nvarchar), och det andra uttrycket inte gör det, CHARINDEX konverterar funktionen det andra uttrycket till en Unicode-datatyp.
CHARINDEX kan inte användas med datatyperna bild, ntext eller text .
Om uttrycket expressionToFind eller expressionToSearch har ett NULL värde CHARINDEX returnerar NULL.
Om CHARINDEX inte hittar expressionToFind i expressionToSearch returnerar CHARINDEX0.
CHARINDEX utför jämförelser baserat på indatasortering. Om du vill göra en jämförelse i en angiven sortering använder du COLLATE för att tillämpa en explicit sortering på indata.
Startpositionen som returneras är 1-baserad, inte 0-baserad.
0x0000 (char(0)) är ett odefinierat tecken i Windows-sortering och kan inte inkluderas i CHARINDEX.
Kompletterande tecken (surrogatpar)
När du använder extra teckensortering (SC) räknar både start_location och returvärdet surrogatpar som ett tecken, inte två. Mer information finns i Stöd för sortering och Unicode.
Examples
A. Returnera startpositionen för ett uttryck
Det här exemplet söker bicycle efter i den sökta strängvärdevariabeln @document.
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document);
GO
Här är resultatuppsättningen.
-----------
48
B. Sök från en viss position
I det här exemplet används den valfria parametern start_location för vital att starta sökningen efter med det femte tecknet i den sökta strängvärdevariabeln @document.
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('vital', @document, 5);
GO
Här är resultatuppsättningen.
-----------
16
C. Sök efter ett obefintligt uttryck
Det här exemplet visar resultatuppsättningen när CHARINDEX inte hittar uttrycketToFind i expressionToSearch.
DECLARE @document AS VARCHAR (64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bike', @document);
GO
Här är resultatuppsättningen.
-----------
0
D. Utföra en skiftlägeskänslig sökning
Det här exemplet visar en skiftlägeskänslig sökning efter strängen TEST i den sökta strängen This is a Test.
USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CS_AS);
Här är resultatuppsättningen.
-----------
0
Det här exemplet visar en skiftlägeskänslig sökning efter strängen Test i den sökta strängen This is a Test.
USE tempdb;
GO
SELECT CHARINDEX('Test', 'This is a Test' COLLATE Latin1_General_CS_AS);
Här är resultatuppsättningen.
-----------
11
E. Utföra en skiftlägeskänslig sökning
Det här exemplet visar en skiftlägeskänslig sökning efter strängen TEST i den sökta strängen This is a Test.
USE tempdb;
GO
SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CI_AS);
GO
Här är resultatuppsättningen.
-----------
11
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
F. Sök från början av ett stränguttryck
Det här exemplet returnerar den första platsen för strängen is i strängen This is a string, med början från position 1 (det första tecknet) i This is a string.
SELECT CHARINDEX('is', 'This is a string');
Här är resultatuppsättningen.
---------
3
G. Sök från en annan position än den första positionen
Det här exemplet returnerar den första platsen för strängen is i strängen This is a stringoch startar sökningen från position 4 (det fjärde tecknet).
SELECT CHARINDEX('is', 'This is a string', 4);
Här är resultatuppsättningen.
---------
6
H. Resultat när strängen inte hittas
Det här exemplet visar returvärdet när CHARINDEX inte hittar strängen string_pattern i den sökta strängen.
SELECT TOP (1) CHARINDEX('at', 'This is a string')
FROM dbo.DimCustomer;
Här är resultatuppsättningen.
---------
0