PostgreSQL SUBSTRING() Функция с Пример за Regex
Какво е PostgreSQL Подниз?
- PostgreSQL Функцията за подниз ви помага даtract и връща част от низ. Вместо да връща целия низ, връща само част от него.
Синтаксис
- PostgreSQL функцията подниз приема следния синтаксис:
substring( string [from starting_position] [for length] )
параметри
| Име | Descriptйон |
|---|---|
| низ | Изходният низ, чийто тип данни е varchar, char, string и т.н. |
| начална_позиция | Това е незадължителен параметър. Той обозначава мястото, където ехtracИзписването на низа ще започне. Ако пропуснете този параметър, ексtracцията ще започне от позиция 1, която е първият символ в низа. |
| Дължината | Това е незадължителен параметър. Той обозначава броя на символите, които ще бъдат извлечени.tracизвлечен от низа. Ако пропуснете този параметър, функцията щеtract от начална_позиция до края на низа. |
Примери
В този пример искаме даtracпървите 4 знака от думата Guru99:
SELECT substring('Guru99' for 4);
Командата ще върне следното:
Не уточнихме началната позиция, така че бившиятtracИзтриването на подниз започва от позиция 1. 4 символа бяха изтритиtracтрябваше да върне горното.
Следният пример показва как да посочите началната позиция:
SELECT substring('Guru99' from 1 for 4);
Командата ще върне следното:
Уточнихме, че бившиятtracПоднизът трябва да започва от позиция 1 и 4 символа трябва да бъдатtracТед.
Нека бъдем бившиtract 99 от низа Guru99:
SELECT substring('Guru99' from 5);
Командата ще върне следното:
Зададохме началната позиция като 5. Тъй като броят на символите, които ще бъдат извлечени,tracТед не беше посочен, бившиятtracцията стигна до края на връвта.
Ето още един пример:
SELECT substring('Guru99' from 5 for 2);
Командата ще върне следното:
Започнахме бившеtracция на позиция 5 и 2 символа са били премахнатиtracТед.
Разгледайте таблицата на книгата, дадена по-долу:
Искаме да добием приблизителна представа за името на всяка книга. Можем обаче да предположимtracсамо първите 15 знака от колоната с име на таблицата:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Командата ще върне следното:
Вече имаме груба представа за името на всяка книга.
Съпоставяне на поднизове с SQL регулярен израз
In PostgreSQL, можем да бъдем бившиtracподниз, съответстващ на зададен POSIX регулярен израз. В този случай функцията за подниз се използва със следния синтаксис:
SUBSTRING(string FROM matching_pattern)
or
SUBSTRING(string, matching_pattern);
Ето обяснение на горните параметри:
Низът е изходният низ, чийто тип данни е varchar, char, string и т.н.
Matching_pattern е моделът, който ще се използва за търсене в низа.
Примери
SELECT
SUBSTRING (
'Your age is 22',
'([0-9]{1,2})'
) as age;
Командата ще върне следното:
Входният ни низ е „вашата възраст е 22“. В шаблона търсим числов шаблон в нашия низ и когато такъв бъде намерен, функцията за подниз трябва само да извеждаtracдва знака.
Как да съпоставите поднизове с помощта на pgAdmin
Сега нека видим как се извършват действията с pgAdmin.
Горните заявки, при които не се нуждаем от база данни, могат да бъдат изпълнени директно от прозореца на редактора на заявки. Просто направете следното:
Стъпка 1) Влезте в акаунта си.
Влезте във вашия pgAdmin акаунт.
Стъпка 2) В pgAdmin,
Щракнете върху иконата на инструмента за заявки.
Ще се отвори прозорецът на редактора на заявки.
Стъпка 3) Тип заявка.
Въведете следната заявка в прозореца на редактора.
SELECT substring('Guru99' for 4);
Стъпка 4) Изпълнение на заявка
Щракнете върху иконата Изпълнение, за да изпълните заявката.
Стъпка 5) Изпълнението на заявката е извършено.
Трябва да върне следното:
Пример 2:
SELECT substring('Guru99' from 1 for 4);
Трябва да върне следното:
Ето следващия пример:
SELECT substring('Guru99' from 5);
Трябва да върне следното:
Пример 3:
SELECT substring('Guru99' from 5 for 2);
Трябва да върне следното:
Сега нека изпълним примера с помощта на таблицата Book на базата данни Demo:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Стъпка 4) Щракнете върху бутона Изпълнение.
Трябва да върне следното:
Вече имаме основна представа за името на всяка книга.
Съпоставяне на поднизове с SQL регулярен израз
За да постигнете същото на pgAdmin, направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2) Щракнете върху иконата на инструмента за заявки.
Ще се отвори прозорецът на редактора на заявки.
Стъпка 3) Въведете следната заявка в прозореца на редактора.
SELECT
SUBSTRING (
'Your age is 22',
'([0-9]{1,2})'
) as age;
Стъпка 4) Щракнете върху иконата Изпълнение, за да изпълните заявката.
Трябва да върне следното:
Oбобщение
- - PostgreSQL Функцията за подниз помага в extracобработка и връщане само на част от низ.
- Първият символ на низа е на позиция 1.
- Ако броят на знаците, които ще бъдат extracАко извлечението от низа не е посочено, функцията ще се изпълниtract символа от посочената начална позиция до края на низа.
- Ако броят на знаците, които ще бъдат extracted е посочен, ще бъдат използвани само този брой знациtracТед.



















