Изучаем sql


SELECT POSITION('characters' IN vchar_fld)



Pdf көрінісі
бет114/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   110   111   112   113   114   115   116   117   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT POSITION('characters' IN vchar_fld)
> FROM string_tbl;
++
| POSITION('characters' IN vchar_fld) |
++
| 19 |
++
1 row in set (0.12 sec)
Если не получается найти подстроку, функция 
position()
возвращает 0.
Программисты на таких языках, как С или С++, в которых пер
вый элемент массива имеет порядковый номер 0, при работе
с базами данных должны помнить, что порядковый номер пер
вого символа строки равен 1. Если функция 
position()
возвраща
ет значение 0, это указывает на то, что подстрока не найдена,
а не на то, что подстрока обнаружена в строке на первой позиции.


Строковые данные
129
Если требуется начать поиск не с первого символа целевой строки, не
обходимо использовать функцию 
locate()
, аналогичную функции 
po
sition()
за тем исключением, что допускает третий необязательный
параметр, предназначенный для задания стартовой позиции поиска.
И еще функция 
locate()
является собственной функцией производите
лей БД, тогда как 
position()
– часть стандарта SQL:2003. Вот пример
запроса позиции строки 
'is'
, начинающего поиск с пятого символа
столбца 
vchar_fld
:
mysql> 
SELECT LOCATE('is', vchar_fld, 5)
> FROM string_tbl;
++
| LOCATE('is', vchar_fld, 5) |
++
| 13 |
++
1 row in set (0.02 sec)
В Oracle Database нет функции 
position()
или 
locate()
, но есть
функция 
instr()
, которая воспроизводит функцию 
position()
,
если задано два аргумента, и функцию 
locate()
, если задано три
аргумента. В SQL Server тоже нет функции 
position()
или 
lo
cate()
, но есть функция 
charindx()
, которая также принимает
два или три аргумента аналогично функции 
instr()
Oracle.
Еще одна функция, принимающая строки в качестве аргументов и воз
вращающая числа, – функция сравнения строк 
strcmp()

Strcmp()
, ко
торая реализована только в MySQL и не имеет аналогов в Oracle Data
base или SQL Server. Она принимает в качестве аргументов две строки
и возвращает одно из следующих значений:
Чтобы проиллюстрировать работу этой функции, сначала покажем
с помощью запроса порядок сортировки пяти строк, а затем проведем
сравнение строк с помощью функции 
strcmp()
. Вот пять строк, кото
рые будут вставлены в таблицу 
string_tbl
:
mysql> 


Достарыңызбен бөлісу:
1   ...   110   111   112   113   114   115   116   117   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет