Instr (MDX)

Mengembalikan posisi kemunculan pertama dari satu string di dalam string lainnya.

Sintaks

InStr([start, ]searched_string, search_string[, compare])  

Argumen

start
(Opsional) Ekspresi numerik yang mengatur posisi awal untuk setiap pencarian. Jika nilai ini dihilangkan, pencarian dimulai pada posisi karakter pertama. Jika start null, nilai pengembalian fungsi tidak ditentukan.

searched_string
Ekspresi string yang akan dicari.

search_string
Ekspresi string yang akan dicari.

Bandingkan
(opsional) Nilai bilangan bulat. Argumen ini selalu diabaikan. Ini didefinisikan untuk kompatibilitas dengan fungsi Instr lainnya dalam bahasa lain.

Tampilkan Nilai

Nilai bilangan bulat dengan posisi awal String2 di String1.

Selain itu, fungsi InStr mengembalikan nilai yang tercantum dalam tabel berikut tergantung pada kondisinya:

Kondisi Mengembalikan nilai
String1 memiliki panjang nol nol (0)
String1 null tidak ditentukan
String2 memiliki panjang nol start
String2 null tidak ditentukan
String2 tidak ditemukan nol (0)
start lebih besar dari Len(String2) nol (0)

Keterangan

Peringatan

Instr selalu melakukan perbandingan yang tidak peka huruf besar/kecil.

Contoh

Contoh berikut menunjukkan penggunaan fungsi Instr dan menunjukkan skenario hasil yang berbeda.

with   
    member [Date].[Date].[Results] as "Results"  
    member measures.[lowercase found in lowercase string] as InStr( "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[uppercase found in lowercase string] as InStr( "abcdefghijklmnñopqrstuvwxyz", "O")  
    member measures.[searched string is empty]            as InStr( "", "o")  
    member measures.[searched string is null]             as iif(IsError(InStr( null, "o")), "Is Error", iif(IsNull(InStr( null, "o")), "Is Null","Is undefined"))  
    member measures.[search string is empty]              as InStr( "abcdefghijklmnñopqrstuvwxyz", "")  
    member measures.[search string is empty start 10]     as InStr(10, "abcdefghijklmnñopqrstuvwxyz", "")  
    member measures.[search string is null]               as iif(IsError(InStr( null, "o")), "Is Error", iif(IsNull(InStr( null, "o")), "Is Null","Is undefined"))  
    member measures.[found from start 10]                 as InStr( 10, "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[NOT found from start 17]             as InStr( 17, "abcdefghijklmnñopqrstuvwxyz", "o")  
    member measures.[NULL start]                          as iif(IsError(InStr( null, "abcdefghijklmnñopqrstuvwxyz", "o")), "Is Error", iif(IsNull(InStr( null, "abcdefghijklmnñopqrstuvwxyz", "o")), "Is Null","Is undefined"))  
    member measures.[start greater than searched length]  as InStr( 170, "abcdefghijklmnñopqrstuvwxyz", "o")  
  
select  [Results] on columns,  
       { measures.[lowercase found in lowercase string]  
       , measures.[uppercase found in lowercase string]  
       , measures.[searched string is empty]  
       , measures.[searched string is null]  
       , measures.[search string is empty]  
       , measures.[search string is empty start 10]  
       , measures.[search string is null]  
       , measures.[found from start 10]  
       , measures.[NOT found from start 17]  
       , measures.[NULL start]   
       , measures.[start greater than searched length]  
       } on rows  
  
from [Adventure Works]  

Tabel berikut menampilkan hasil yang diperoleh.

Bidang dalam pengukuran Hasil
huruf kecil ditemukan dalam string huruf kecil 16
huruf besar ditemukan dalam string huruf kecil 16
string yang dicari kosong 0
string yang dicari null Tidak terdefinis
string pencarian kosong 1
string pencarian kosong mulai 10 10
string pencarian null Tidak terdefinis
ditemukan dari awal 10 16
TIDAK ditemukan dari awal 17 0
Null mulai Tidak terdefinis
mulai lebih besar dari panjang yang dicari 0