Aracılığıyla paylaş


CHARINDEX (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bu işlev, ikinci bir karakter ifadesi içinde bir karakter ifadesi arar ve bulunursa ilk ifadenin başlangıç konumunu döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

Arguments

expressionToFind

Bulunacak sırayı içeren bir karakter ifadesi . expressionToFind 8.000 karakter sınırına sahiptir.

expressionToSearch

Aranacak karakter ifadesi.

start_location

Aramanın başladığı tamsayı veya bigint ifadesi. start_location belirtilmezse, negatif bir değere sahipse veya sıfır (0) değerine sahipse, arama expressionToSearch'in başlangıcında başlar.

Dönüş türleri

expressionToSearchbir nvarchar(max), varbinary(max)veya varchar(max) veri türüne sahipse bigint; aksi takdirde int.

Açıklamalar

expressionToFind veya expressionToSearch ifadesinde Unicode veri türü (nchar veya nvarchar) varsa ve diğer ifade yoksa, CHARINDEX işlev diğer ifadeyi Unicode veri türüne dönüştürür. CHARINDEX görüntü, ntext veya metin veri türleriyle kullanılamaz.

expressionToFind veya expressionToSearch ifadesinin bir NULL değeri varsa, CHARINDEX döndürürNULL.

CHARINDEX içinde expressionToFind bulunamazsa döndürür CHARINDEX0.

CHARINDEX giriş harmanlamasını temel alarak karşılaştırmalar yapar. Belirtilen harmanlamada karşılaştırma yapmak için komutunu kullanarak COLLATE girişe açık bir harmanlama uygulayın.

Döndürülen başlangıç konumu 0 tabanlı değil 1 tabanlıdır.

0x0000 (char(0)), Windows harmanlamalarında tanımlanmamış bir karakterdir ve içine CHARINDEXeklenemez.

Ek Karakterler (Vekil Çiftler)

Tamamlayıcı karakter (SC) harmanlamaları kullanılırken, hem start_location hem de dönüş değeri sayısı vekil çiftlerini iki karakter olarak değil, tek karakter olarak eşleştirir. Daha fazla bilgi için bkz. Harmanlama ve Unicode desteği.

Örnekler

A. İfadenin başlangıç konumunu döndürme

Bu örnek, aranan dize değeri değişkeninde bicycleöğesini arar@document.

DECLARE @document AS VARCHAR (64);

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

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

Sonuç kümesi aşağıdadır.

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

B. Belirli bir konumdan arama

Bu örnekte, aranan dize değeri değişkeninin beşinci karakterinde aramayı başlatmak için vital isteğe bağlı @document parametresi kullanılır.

DECLARE @document AS VARCHAR (64);

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

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

Sonuç kümesi aşağıdadır.

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

C. Var olmayan bir ifadeyi arama

Bu örnekte CHARINDEX içinde expressionToFind bulunamazsa sonuç kümesi gösterilir.

DECLARE @document AS VARCHAR (64);

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

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

Sonuç kümesi aşağıdadır.

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

Bu örnekte, aranan dizedeki dize TEST için büyük/küçük harfe duyarlı arama gösterilmektedir This is a Test.

USE tempdb;
GO

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

Sonuç kümesi aşağıdadır.

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

Bu örnekte, aranan dizedeki dize Test için büyük/küçük harfe duyarlı arama gösterilmektedir This is a Test.

USE tempdb;
GO

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

Sonuç kümesi aşağıdadır.

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

Bu örnekte, aranan dizedeki dize TEST için büyük/küçük harfe duyarlı olmayan bir arama gösterilmektedir This is a Test.

USE tempdb;
GO

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

Sonuç kümesi aşağıdadır.

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

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

F. Dize ifadesinin başından arama

Bu örnek, dizenin 1 konumundan (ilk karakter) isbaşlayarak dizesindeki This is a stringThis is a stringilk konumunu döndürür.

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

Sonuç kümesi aşağıdadır.

---------
3

G. İlk konumdan başka bir konumdan arama

Bu örnek, dizedeki isdizenin This is a string ilk konumunu döndürür ve aramayı 4. konumdan (dördüncü karakter) başlatır.

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

Sonuç kümesi aşağıdadır.

---------
 6

H. Dize bulunamadığında elde edilen sonuçlar

Bu örnekte, aranan dizede dize CHARINDEX bulunamazsa dönüş değeri gösterilir.

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

Sonuç kümesi aşağıdadır.

---------
0