CHARINDEX (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Fungsi ini mencari satu ekspresi karakter di dalam ekspresi karakter kedua, mengembalikan posisi awal ekspresi pertama jika ditemukan.
Sintaks
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
Argumen
expressionToFind
Ekspresi karakter yang berisi urutan untuk ditemukan. expressionToFind memiliki batas 8000 karakter.
expressionToSearch
Ekspresi karakter untuk dicari.
start_location
Ekspresi bilangan bulat atau besar di mana pencarian dimulai. Jika start_location tidak ditentukan, memiliki nilai negatif, atau memiliki nilai nol (0), pencarian dimulai di awal expressionToSearch.
Jenis yang dikembalikan
bigint jika expressionToSearch memiliki jenis data nvarchar(max), varbinary(max), atau varchar(max ) ; int sebaliknya.
Keterangan
Jika ekspresiToFind atau ekspresiToSearch memiliki jenis data Unicode (nchar atau nvarchar), dan ekspresi lainnya tidak, fungsi CHARINDEX mengonversi ekspresi lain tersebut ke jenis data Unicode. CHARINDEX tidak dapat digunakan dengan jenis data gambar, ntext, atau teks .
Jika ekspresi ExpressionToFind atau ekspresiToSearch memiliki nilai NULL, CHARINDEX mengembalikan NULL.
Jika CHARINDEX tidak menemukan expressionToFind dalam expressionToSearch, CHARINDEX mengembalikan 0.
CHARINDEX melakukan perbandingan berdasarkan kolate input. Untuk melakukan perbandingan dalam kolamen tertentu, gunakan COLLATE untuk menerapkan kolatasi eksplisit ke input.
Posisi awal yang dikembalikan berbasis 1, bukan berbasis 0.
0x0000 (char(0)) adalah karakter yang tidak ditentukan dalam kolase Windows dan tidak dapat disertakan dalam CHARINDEX.
Karakter Tambahan (Pasangan Pengganti)
Saat menggunakan kolase SC, baik start_location maupun pasangan pengganti jumlah nilai yang dikembalikan sebagai satu karakter, bukan dua. Untuk informasi selengkapnya, lihat Dukungan Kolate dan Unicode.
Contoh
J. Mengembalikan posisi awal ekspresi
Contoh ini mencari bicycle
dalam variabel nilai string yang dicari @document
.
DECLARE @document VARCHAR(64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document);
GO
Berikut set hasilnya.
-----------
48
B. Mencari dari posisi tertentu
Contoh ini menggunakan parameter start_location opsional untuk memulai pencarian vital
pada karakter kelima dari variabel nilai string yang dicari @document
.
DECLARE @document VARCHAR(64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('vital', @document, 5);
GO
Berikut set hasilnya.
-----------
16
(1 row(s) affected)
C. Mencari ekspresi yang tidak ada
Contoh ini menunjukkan tataan hasil saat CHARINDEX tidak menemukan expressionToFind dalam expressionToSearch.
DECLARE @document VARCHAR(64);
SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bike', @document);
GO
Berikut set hasilnya.
-----------
0
(1 row(s) affected)
D. Melakukan pencarian peka huruf besar/kecil
Contoh ini menunjukkan pencarian peka huruf besar/kecil untuk string 'TEST'
dalam string 'This is a Test``'
yang dicari .
USE tempdb;
GO
--perform a case sensitive search
SELECT CHARINDEX ( 'TEST',
'This is a Test'
COLLATE Latin1_General_CS_AS);
Berikut set hasilnya.
-----------
0
Contoh ini menunjukkan pencarian peka huruf besar/kecil untuk string 'Test'
di 'This is a Test'
.
USE tempdb;
GO
SELECT CHARINDEX ( 'Test',
'This is a Test'
COLLATE Latin1_General_CS_AS);
Berikut set hasilnya.
-----------
11
E. Melakukan pencarian yang tidak peka huruf besar/kecil
Contoh ini menunjukkan pencarian yang tidak peka huruf besar/kecil untuk string 'TEST'
di 'This is a Test'
.
USE tempdb;
GO
SELECT CHARINDEX ( 'TEST',
'This is a Test'
COLLATE Latin1_General_CI_AS);
GO
Berikut set hasilnya.
-----------
11
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
F. Mencari dari awal ekspresi string
Contoh ini mengembalikan lokasi pertama string is
dalam string This is a string
, dimulai dari posisi 1 (karakter pertama) dari This is a string
.
SELECT CHARINDEX('is', 'This is a string');
Berikut set hasilnya.
---------
3
G. Mencari dari posisi selain posisi pertama
Contoh ini mengembalikan lokasi pertama string is
dalam string This is a string
, memulai pencarian dari posisi 4 (karakter keempat).
SELECT CHARINDEX('is', 'This is a string', 4);
Berikut set hasilnya.
---------
6
H. Hasil ketika string tidak ditemukan
Contoh ini menunjukkan nilai pengembalian ketika CHARINDEX tidak menemukan string string_pattern dalam string yang dicari.
SELECT TOP(1) CHARINDEX('at', 'This is a string') FROM dbo.DimCustomer;
Berikut set hasilnya.
---------
0
Lihat juga
LEN (T-SQL)
PATINDEX (Transact-SQL)
Fungsi String (Transact-SQL)
+ (Penggalian String) (Transact-SQL)
Dukungan Kolajeasi dan Unicode