FINDSTRING (службы SSIS)
Возвращает местоположение заданного вхождения строки в символьном выражении. Возвращаемый результат является относительным положением вхождения в выражении, нумерация символов которого начинается с единицы. Значением параметра строки должно быть символьное выражение, а значением параметра вхождения должно быть целое число. Если строка не найдена, то возвращается значение 0. Если строка встречается меньшее количество раз, чем определено аргументом, то возвращается значение 0.
Синтаксис
FINDSTRING(character_expression, searchstring, occurrence)
Аргументы
- character_expression
Символьная строка, в которой производится поиск.
- searchstring
Искомая символьная строка.
- occurrence
Целое число со знаком или без него, указывающее, какое по порядку вхождение searchstring следует искать.
Типы результата
DT_I4
Замечания
Функция FINDSTRING работает только с типами данных DT_WSTR. Аргументы character_expression и searchstring, являющиеся строковыми литералами или столбцами с данными типа DT_STR, неявно приводятся к типу данных DT_WSTR перед выполнением функции FINDSTRING. Прочие типы данных должны быть явно приведены к типу данных DT_WSTR. Дополнительные сведения см. в разделах Типы данных служб Integration Services и Приведение (службы SSIS).
Функция FINDSTRING возвращает NULL, если или character_expression, или searchstring равны NULL.
Для получения относительного положения первого вхождения в аргументе occurrence следует использовать 1, для второго вхождения — 2 и т.д.
Аргумент occurrence должен иметь тип целого числа, значение которого больше 0.
Примеры
В данном примере используется строковый литерал. Он возвращает значение 11.
FINDSTRING("New York, NY, NY", "NY", 1)
В данном примере используется строковый литерал. Так как строка «NY» встретилась меньше двух раз, то возвращается значение 0.
FINDSTRING("New York, NY, NY", "NY", 3)
В этом примере используется столбец Name. Он возвращает местоположение значения n в столбце Name. Возвращаемый результат зависит от значения в столбце Name. Если Name содержит Anderson, функция возвращает значение 8.
FINDSTRING(Name,"n", 2)
В этом примере используются столбцы Name и Size. Он возвращает местоположение самого левого символа значения Size в столбце Name. Возвращаемый результат зависит от значений столбца. Если Name содержит Mountain,500Red,42 и Size содержит 42, возвращаемый результат равен 17.
FINDSTRING(Name,Size,1)