Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft 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
D. Büyük/küçük harfe duyarlı arama gerçekleştirme
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
E. Büyük/küçük harfe duyarlı olmayan arama gerçekleştirme
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