Описание sql instr: Функция INSTR() в SQL
Содержание
Функция InStr
Access
Выражения
Текстовые функции
Текстовые функции
Функция InStr
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.
Некоторые примеры
Синтаксис
Instr
([начало, ]строка1, строка2[, сравнение] )
Функция InStr имеет следующие аргументы:
Аргумент
|
Описание
|
начало
|
Необязательный аргумент. Числовое выражение, которое задает начальное положение для каждого поиска. Если аргумент не задан, поиск начинается с первого символа. Если аргумент начало содержит значение NULL, возникает ошибка. Если задан аргумент сравнение, аргумент начало является обязательным.
|
строка1
|
Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск.
|
строка2
|
Обязательный аргумент. Искомое строковое выражение.
|
сравнение
|
Необязательный аргумент. Определяет тип сравнение строк. Если сравнение имеет null, возникает ошибка. Если этот параметр опущен, тип сравнения определяется параметром сравнения. Укажите допустимый LCID (LocaleID), который будет использовать в сравнении правила для конкретного локали.
|
Совет:
В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
Параметры
Аргумент compare может принимать следующие значения.
|
|
|
|
–1
|
Выполняется сравнение с помощью параметра инструкции Option Compare.
|
|
0
|
Выполняется двоичное сравнение.
|
|
1
|
Выполняется текстовое сравнение.
|
|
2
|
Только в Microsoft Office Access 2007. Выполняется сравнение на основе сведений из базы данных.
|
Возвращаемые значения
Если
|
Возвращаемое значение
|
строка1 является пустой
|
0
|
строка1 равна NULL
|
NULL
|
строка2 является пустой
|
|
строка2 равна NULL
|
NULL
|
строка2 не найдена
|
0
|
строка2 найдена в строке1
|
Позиция найденного соответствия
|
начало > строка2
|
0
|
Замечания
Функция InStrB используется с байтовыми данными, содержащимися в строке. Функция InStrB возвращает позицию байта, а не позицию знака первого вхождения одной строки в другую.
Использование функции InStr в выражении. Функцию InStr можно использовать в любых выражениях. Например, если требуется определить позицию первой точки (.) в поле, которое содержит IP-адрес (IPAddress), можно использовать функцию InStr для его поиска:
InStr(1,[IPAddress],».»)
Функция InStr проверяет каждое значение в поле IPAddress и возвращает позицию первой точки. Следовательно, если значение первого октета IP-адреса равно 10., функция возвращает значение 3.
Можно использовать другие функции, использующие результат функции InStr, для извлечения значения октета IP-адреса, который предшествует первой точке, например:
Left([IPAddress],(InStr(1,[IPAddress],». «)-1))
В этом примере функция InStr(1,[IPAddress],».») возвращает позицию первой точки. В результате вычитания 1 определяется количество знаков, предшествующих первой точке, в данном случае — 2. Затем функция Left получает эти символы из левой части поля IPAddress, возвращая значение 10.
Использование функции InStr в коде VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В данном примере функция InStr используется для получения позиции первого вхождения одной строки в другую.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.
INSTR( string, substring [, start_position [, nth_appearance ] ] ) / n-е вхождение подстроки
Описание
Функция Oracle / PLSQL INSTR возвращает n-е вхождение подстроки в строке.
Синтаксис
Синтаксис функции Oracle / PLSQL INSTR:
INSTR( string, substring [, start_position [, nth_appearance ] ] )
Параметры или аргументы
string является строка для поиска. string может быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
substring подстрока для поиска в строке. substring может быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
start_position является положение символа в строке, с которого начнется поиск. Этот аргумент является необязательным. Если аргумент опущен, то по умолчанию 1. Первая позиция в строке 1. Если параметр start_position отрицательный, то функция INSTR рассчитывает позицию start_position в обратном направлении от конца строки, а затем ищет к началу строки.
nth_appearance является n-м вхождением подстроки. Аргумент не является обязательным. Если опущен, то по умолчанию 1.
Примечание
Если подстрока не найдена в строке, то функция INSTR вернет 0.
Применение
Функцию INSTR можно использовать в следующих версиях Oracle / PLSQL:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Пример
Рассмотрим несколько примеров функции INSTR и изучим, как использовать функцию INSTR в Oracle / PLSQL.
Oracle PL/SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
SQL> SELECT INSTR('На дворе трава', 'а') FROM DUAL;
INSTR('НАДВОРЕТРАВА','А')
-------------------------
2
SQL> SELECT INSTR('На дворе трава', 'а', 1, 1) FROM DUAL;
INSTR('НАДВОРЕТРАВА','А',1,1)
-----------------------------
2
SQL> SELECT INSTR('На дворе трава', 'а', 1, 2) FROM DUAL;
INSTR('НАДВОРЕТРАВА','А',1,2)
-----------------------------
12
SQL> SELECT INSTR('На дворе трава', 'а', 1, 3) FROM DUAL;
INSTR('НАДВОРЕТРАВА','А',1,3)
-----------------------------
14
SQL> SELECT INSTR('На дворе трава', 'а', -3, 2) FROM DUAL;
INSTR('НАДВОРЕТРАВА','А',-3,2)
------------------------------
2 |
InStr Функция
Доступ
Выражения
Текстовые функции
Текстовые функции
InStr Функция
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Дополнительно. ..Меньше
Возвращает вариант Variant ( Long ), указывающий позицию первого вхождения одной строки в другую.
Посмотреть несколько примеров
Синтаксис
Инстр
( [ начало, ] строка1, строка2 [, сравнить ] )
Синтаксис функции InStr имеет следующие аргументы:
Аргумент | Описание |
начало | Дополнительно. Числовое выражение, задающее начальную позицию для каждого поиска. Если этот параметр опущен, поиск начинается с позиции первого символа. Если start содержит Null, возникает ошибка. 9Аргумент 0015 start обязателен, если указано сравнение . |
строка1 | Обязательно. Искомое строковое выражение. |
строка2 | Требуется. Искомое строковое выражение. |
сравнить | Дополнительно. Указывает тип сравнения строк. Если сравнение имеет значение Null, возникает ошибка. Если параметр Compare опущен, параметр Option Compare определяет тип сравнения. Укажите действительный LCID (LocaleID), чтобы использовать при сравнении правила, специфичные для локали. |
Совет:
В Access 2010 построитель выражений имеет IntelliSense, поэтому вы можете видеть, какие аргументы требуются вашему выражению.
Настройки
Параметры аргумента сравнения :
Константа | Значение | Описание |
vbUseCompareOption | -1 | Выполняет сравнение, используя настройку оператора Option Compare . |
vbBinaryСравнить | 0 | Выполняет двоичное сравнение. |
vbTextCompare | 1 | Выполняет текстовое сравнение. |
vbDatabaseCompare | 2 | Только Microsoft Office Access 2007. Выполняет сравнение на основе информации из вашей базы данных. |
Возвращаемые значения
Если | InStr возвращает |
string1 имеет нулевую длину | 0 |
string1 равен нулю | Нуль |
string2 имеет нулевую длину | начало |
строка2 равна нулю | Нуль |
строка2 не найдена | 0 |
строка2 находится в строке1 | Позиция, в которой найдено совпадение |
начало > строка2 | 0 |
Замечания
Функция InStrB используется с байтовыми данными, содержащимися в строке. Вместо того, чтобы возвращать позицию символа первого вхождения одной строки в другую, InStrB возвращает позицию байта.
Используйте функцию InStr в выражении Вы можете использовать InStr везде, где можно использовать выражения. Например, если вы хотите найти позицию первого периода ( . ) в поле, которое содержит IP-адреса (с именем IPAddress), вы можете использовать InStr , чтобы найти его, например:
InStr(1,[IP-адрес],.»)
Функция InStr проверяет каждое значение в поле IPAddress и возвращает позицию первой точки. Следовательно, если первая часть IP-адреса равна 10., функция возвращает значение 3.
.
Затем вы можете использовать другие функции, работающие с выходными данными функции InStr , для извлечения части IP-адреса, которая предшествует первой точке, например:
Слева([IP-адрес],(InStr(1,[IP-адрес],». «)-1))
В этом примере InStr(1,[IPAddress],».») возвращает позицию первой точки. Вычитание 1 определяет, сколько символов предшествует первой точке, в данном случае 2. Функция Left затем извлекает столько символов из левой части поля IPAddress, возвращая значение 10.
Использовать InStr в коде VBA
Примечание. В следующих примерах показано использование этой функции в модуле Visual Basic для приложений (VBA). Для получения дополнительных сведений о работе с VBA выберите Справочник разработчика в раскрывающемся списке рядом с Найдите и введите одно или несколько условий в поле поиска.
В этом примере функция InStr используется для возврата позиции первого вхождения одной строки в другую.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' Строка для поиска.
SearchChar = "P" ' Поиск "P".
' Текстовое сравнение, начиная с позиции 4. Возвращает 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' Двоичное сравнение, начинающееся с позиции 1. Возвращает 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Сравнение по умолчанию двоичное
' (последний аргумент опущен).
MyPos = Instr(SearchString, SearchChar) ' Возвращает 9.
MyPos = Instr(1, SearchString, "W") ' Возвращает 0.
Функция INSTR
Функция INSTR выполняет поиск строки символов для
указанную подстроку и возвращает позицию символа в этой
строка, в которой вхождение этой подстроки заканчивается, на основе количества
вхождений подстрок.
Функция INSTR имеет следующий синтаксис:
Функция INSTR
Элемент | Описание | Ограничения | Синтаксис |
---|---|---|---|
количество | Выражение, результатом которого является целое число > | Должно быть выражением, константой, столбцом или хостом переменная встроенного целочисленного типа или которая может быть преобразована в целое число. | Выражение |
исходная_ строка | Выражение, результатом которого является строка символов | Должно быть выражением, константой, столбцом или хостом переменная встроенного символьного типа данных или которая может быть преобразована к типу символов | Выражение |
начало | Порядковый номер для начала поиска в source_string , где 1 — первый логический символ | Должно быть выражением, константой, столбцом или хостом переменная встроенного целочисленного типа или которая может быть преобразована в положительное или отрицательное целое число | Выражение |
подстрока | Выражение, результатом которого является строка символов | Должно быть выражением, константой, столбцом или хостом переменная встроенного символьного типа данных или которая может быть преобразована к типу символов | Выражение |
Аргументы до INSTR не может быть пользовательскими данными
типы.
Функция возвращает NULL в каждом из следующих случаев:
- count меньше или равно нулю (
0
). - source_string имеет значение NULL или нулевую длину.
- подстрока имеет значение NULL или нулевую длину.
Возвращаемое значение равно нулю ( 0
) в каждом
из следующих случаев:
- , если в 9 не найдено ни одного вхождения подстроки .0424 исходная_строка ,
- , если start больше длины source_string .
- Если меньше чем подсчета вхождений подстроки
в исходной_строке ,
Если опустить необязательный аргумент count , значение по умолчанию count
равен 1.
В локалях, поддерживающих многобайтовые наборы символов,
возвращаемое значение — это порядковый номер среди логических символов в исходная_строка .
В однобайтовых локалях, таких как локаль по умолчанию, возвращаемое значение
эквивалентно позиции байта, где первый байт находится в позиции 1
.
Начальная позиция
Если начальная позиция
опущен или указан как ноль, начинается поиск подстроки
в позиции символа 1. Если начало отрицательное, поиск
вхождения подстрока начинается в конце source_string ,
и идет к началу.
- В локали с письмом слева направо отрицательное значение start указывает
поиск справа налево. - В локали с письмом справа налево отрицательное значение start указывает
поиск слева направо.
Однако в обоих типах локалей поиск начинается с логического
позиция символа в пределах source_string , что соответствует
абсолютное значение начинается с .
В локали с письмом справа налево,
минус start значение задает поиск слева направо.
Примеры выражений функции INSTR
все следующие выражения основаны на одной и той же source_string и подстроке .
Этот пример возвращает 3
в качестве позиции символа
первой подстроки 'er'
:
INSTR("wwerw.ibm.cerom", "er")
In
в приведенном выше примере оба начинают с и считают по умолчанию равным 1
.
вложенный пример начинает поиск со 2-й позиции символа, с
по умолчанию количество из 1
:
INSTR("wwerw.ibm.cerom", "er", 2)
выражение выше возвращает 3
, позицию первого
символ в первой подстроке 'er'
слева направо
поисковые встречи.
В следующем примере указывается количество 2
,
запуск поиска с первого символа исходной_строки :
INSTR("wwerw.