Instr (MDX)
Возвращает положение первого экземпляра строки внутри другой строки.
Синтаксис
InStr([start, ]searched_string, search_string[, compare])
Аргументы
Начало
Числовое выражение, задающее начальную позицию для каждого поиска (необязательный). Если это значение не указано, поиск начинается с позиции первого символа. Если параметр start имеет значение null, возвращаемое значение функции не определено.
searched_string
Строковое выражение для поиска.
search_string
Строковое выражение, которое необходимо найти.
Сравнить
Целочисленное значение (не обязательно). Этот аргумент никогда не учитывается. Он определяется для совместимости с другими функциями Instr на других языках.
Возвращаемое значение
Целочисленное значение с начальной позицией String2 в String1.
Кроме того, функция InStr возвращает значения, перечисленные в следующей таблице в зависимости от условия:
Condition | Возвращаемое значение |
---|---|
String1 имеет нулевую длину | ноль (0) |
String1 содержит значение NULL | не определено |
String2 имеет нулевую длину | начало |
String2 содержит значение NULL | не определено |
Значение String2 не найдено | ноль (0) |
начало больше 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 |
строка поиска пуста, начало 10 | 10 |
искомая строка имеет значение NULL | Не задано |
найдено от начало 10 | 16 |
НЕ найдено от начало 17 | 0 |
Значение NULL в начале | Не задано |
начало больше искомой длины | 0 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по