SUBSTRING¶
Функция SUBSTRING
извлекает подстроку из строки string подобно тому,
как это делает функция SUBSTR, однако предоставляет
дополнительные возможности поиска символов.
Синтаксис¶
Основная функция¶
Варианты поиска подстроки¶
Доступны несколько вариантов поиска подстроки:
For
— искать слева направо по указанный номера символаFrom
— искать слева направо с указанного номера символа, а также извлечь первую подстроку, соответствующую регулярному выражению в стиле POSIXFromFor
— сочетание обоих вариантов выше, указание полных границ поискаRegular
— традиционный поиск по номерам символов, как в SUBSTRSimilar
— поиск по схожести c использованием регулярного выражения и экранирования специальных символов в нем
Отличие варианта FromFor
от Regular
также состоит в том, что поиск
может происходить не только по позициям символом (их номерах), но и по
вхождению подстроки с помощью регулярных выражений, см. примеры.
substringFor¶
substringFrom¶
substringFromFor¶
substringRegular¶
substringSimilar¶
Выражение¶
Диаграмма
Литерал¶
Диаграмма
Примеры¶
Указание только начального отступа
sql> SELECT SUBSTRING('(select 1)', 3);
+----------+
| col_1 |
+==========+
| elect 1) |
+----------+
(1 rows)
Указание обеих границ
sql> SELECT SUBSTRING('1234567890' FROM 4 FOR 3);
+-------+
| col_1 |
+=======+
| 456 |
+-------+
(1 rows)
Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле SQL
sql> SELECT SUBSTRING('abcdefg' FROM 'a#"(b_d)#"%' FOR '#');
+-------+
| col_1 |
+=======+
| bcd |
+-------+
(1 rows)
Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле POSIX
sql> SELECT substring('Thomas' FROM '...$') ;
+-------+
| col_1 |
+=======+
| mas |
+-------+
(1 rows)
Поиск первой подстроки, удовлетворяющей регулярному выражению в стиле SQL
sql> SELECT SUBSTRING('abcdefg' SIMILAR 'a#"%#"x|g' ESCAPE '#');
+-------+
| col_1 |
+=======+
| bcdef |
+-------+
(1 rows)