Instr (MDX)

다른 문자열 내에서 한 문자열의 시작 위치를 반환합니다.

구문

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

인수

  • start
    (선택 사항) 각 검색의 시작 위치를 설정하는 숫자 식입니다. 이 값을 생략하면 첫 번째 문자 위치에서 검색이 시작됩니다. start가 null인 경우에는 함수 반환 값이 정의되지 않습니다.

  • searched_string
    검색할 문자열 식입니다.

  • search_string
    검색할 문자열 식입니다.

  • Compare
    (선택 사항) 정수 값입니다. 이 인수는 항상 무시되며, 다른 언어로 된 다른 Instr 함수와의 호환성을 위해 정의됩니다.

반환 값

String1 내에서 String2의 시작 위치를 포함하는 정수 값입니다.

또한 InStr 함수는 조건에 따라 다음 테이블에 나열된 값을 반환합니다.

조건

반환 값

String1의 길이가 0인 경우

영(0)

String1이 Null인 경우

정의되지 않음

String2의 길이가 0인 경우

start

String2가 Null인 경우

정의되지 않음

String2를 찾을 수 없는 경우

영(0)

start가 Len(String2)보다 큰 경우

영(0)

주의

주의 사항주의

Instr는 항상 대/소문자를 구분하지 않고 비교를 수행합니다.

다음 예에서는 Instr 함수의 사용법과 여러 다른 결과를 나타내는 시나리오를 보여 줍니다.

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]

다음 표에서는 얻게 되는 결과를 보여 줍니다.

결과

소문자 문자열에 소문자가 있습니다.

16

소문자 문자열에 대문자가 있습니다.

16

검색된 문자열이 비어 있습니다.

0

검색된 문자열이 null입니다.

정의되지 않음

검색 문자열이 비어 있습니다.

1

검색 문자열이 비어 있습니다(start 10).

10

검색 문자열이 null입니다.

정의되지 않음

start 10에서 찾았습니다.

16

start 17에서 찾을 수 없습니다.

0

NULL start

정의되지 않음

start가 검색된 길이보다 큽니다.

0