Megosztás a következőn keresztül:


CHARINDEX (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Ez a függvény egy karakterkifejezést keres egy második karakterkifejezésben, és visszaadja az első kifejezés kezdő pozícióját, ha megtalálható.

Transact-SQL szintaxis konvenciói

Szemantika

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

Arguments

expressionToFind

A keresendő sorozatot tartalmazó karakterkifejezés . A expressionToFind karakterkorlátja 8000.

expressionToSearch

Keresendő karakterkifejezés.

start_location

Egész szám vagy bigint kifejezés, amelyen a keresés elindul. Ha start_location nincs megadva, negatív vagy nulla (0) értékkel rendelkezik, a keresés a expressionToSearch kezdetétől kezdődik.

Visszatérési típusok

bigint , ha az expressionToSearchnvarchar(max), varbinary(max), vagy varchar(max) adattípussal rendelkezik; int egyébként.

Megjegyzések

Ha a expressionToFind vagy a expressionToSearch kifejezés Unicode-adattípussal (nchar vagy nvarchar) rendelkezik, és a másik kifejezés nem, a függvény unicode-adattípussá alakítja a CHARINDEX másik kifejezést. CHARINDEX nem használható kép-, ntext- vagy szöveges adattípusokkal.

Ha a expressionToFind vagy a expressionToSearch kifejezésnek értéke van NULL , CHARINDEX akkor a függvény a függvényt NULLadja vissza.

Ha CHARINDEX a expressionToFind kifejezés nem található a expressionToSearch fájlban, CHARINDEX a függvény ad 0vissza.

CHARINDEX a bemeneti rendezés alapján végez összehasonlításokat. Ha egy adott rendezésben szeretne összehasonlítást végezni, használjon COLLATE explicit rendezést a bemenetre.

A visszaadott kezdő pozíció 1-alapú, nem 0-alapú.

0x0000 A (char(0)) a Windows-rendezésekben nem definiált karakter, és nem szerepelhet a fájlban CHARINDEX.

Kiegészítő karakterek (helyettesítő párok)

Kiegészítő karakter (SC) rendezések használatakor a start_location és a visszatérési érték is egy karakterként, nem kettőként számítja ki a helyettesítő párokat. További információ: Rendezés és Unicode-támogatás.

Példák

Egy. Kifejezés kezdőpozíciójának visszaadása

Ez a példa a keresett sztringérték változóban bicyclekeres@document.

DECLARE @document AS VARCHAR (64);

SELECT @document = 'Reflectors are vital safety' +
    ' components of your bicycle.';

SELECT CHARINDEX('bicycle', @document);
GO

Itt van az eredményhalmaz.

-----------
48

B. Keresés adott pozícióból

Ez a példa az opcionális start_location paraméterrel indítja el a keresést vital a keresett sztringérték változó @documentötödik karakterénél.

DECLARE @document AS VARCHAR (64);

SELECT @document = 'Reflectors are vital safety' +
    ' components of your bicycle.';

SELECT CHARINDEX('vital', @document, 5);
GO

Itt van az eredményhalmaz.

-----------
16

C. Nem létező kifejezés keresése

Ez a példa az eredményhalmazt mutatja be, ha CHARINDEX nem találja a expressionToFind kifejezést a expressionToSearch fájlban.

DECLARE @document AS VARCHAR (64);

SELECT @document = 'Reflectors are vital safety' +
    ' components of your bicycle.';

SELECT CHARINDEX('bike', @document);
GO

Itt van az eredményhalmaz.

-----------
0

Ez a példa a keresett sztringben TESTlévő sztring This is a Test kis- és nagybetűkre vonatkozó keresését mutatja be.

USE tempdb;
GO

--perform a case sensitive search
SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CS_AS);

Itt van az eredményhalmaz.

-----------
0

Ez a példa a keresett sztringben Testlévő sztring This is a Test kis- és nagybetűkre vonatkozó keresését mutatja be.

USE tempdb;
GO

SELECT CHARINDEX('Test', 'This is a Test' COLLATE Latin1_General_CS_AS);

Itt van az eredményhalmaz.

-----------
11

Ez a példa a keresett sztringben TESTlévő sztring This is a Test kis- és nagybetűkre vonatkozó keresését mutatja be.

USE tempdb;
GO

SELECT CHARINDEX('TEST', 'This is a Test' COLLATE Latin1_General_CI_AS);
GO

Itt van az eredményhalmaz.

-----------
11

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

F. Keresés egy sztringkifejezés elejétől

Ez a példa a sztring isThis is a stringelső helyét adja vissza az 1. pozíciótól kezdve (az első karakter).This is a string

SELECT CHARINDEX('is', 'This is a string');

Itt van az eredményhalmaz.

---------
3

G. Keresés az első pozíciótól eltérő helyről

Ez a példa a sztring isThis is a stringelső helyét adja vissza, és a keresést a 4. pozícióból (a negyedik karakterből) indítja el.

SELECT CHARINDEX('is', 'This is a string', 4);

Itt van az eredményhalmaz.

---------
 6

H. Eredmény, ha a sztring nem található

Ez a példa a visszatérési értéket mutatja be, ha CHARINDEX nem talál sztringet string_pattern a keresett sztringben.

SELECT TOP (1) CHARINDEX('at', 'This is a string')
FROM dbo.DimCustomer;

Itt van az eredményhalmaz.

---------
0