PostgreSQL SUBSTRING() Функция с Пример за Regex
Какво е PostgreSQL Подниз?
- PostgreSQL функцията substring ви помага да извлечете и върнете част от низ. Вместо да връща целия низ, той връща само част от него.
Синтаксис
- PostgreSQL функцията подниз приема следния синтаксис:
substring( string [from starting_position] [for length] )
параметри
Име | Descriptйон |
---|---|
низ | Изходният низ, чийто тип данни е varchar, char, string и т.н. |
начална_позиция | Това е незадължителен параметър. Той обозначава мястото, където ще започне извличането на низа. Ако пропуснете този параметър, извличането ще започне от позиция 1, която е първият знак в низа. |
Дължината | Това е незадължителен параметър. Той обозначава броя знаци, които трябва да бъдат извлечени от низа. Ако пропуснете този параметър, функцията ще извлече от начална_позиция до края на низа. |
Примери
В този пример искаме да извлечем първите 4 знака от думата Guru99:
SELECT substring('Guru99' for 4);
Командата ще върне следното:
Не сме посочили началната позиция, така че извличането на подниза започва от позиция 1. Бяха извлечени 4 знака, за да се върне горното.
Следният пример показва как да посочите началната позиция:
SELECT substring('Guru99' from 1 for 4);
Командата ще върне следното:
Уточнихме, че извличането на подниза трябва да започне от позиция 1 и трябва да бъдат извлечени 4 символа.
Нека извлечем 99 от низа Guru99:
SELECT substring('Guru99' from 5);
Командата ще върне следното:
Зададохме началната позиция като 5. Тъй като броят знаци за извличане не беше посочен, извличането се проведе до края на низа.
Ето още един пример:
SELECT substring('Guru99' from 5 for 2);
Командата ще върне следното:
Започнахме извличането на позиция 5 и бяха извлечени 2 знака.
Разгледайте таблицата на книгата, дадена по-долу:
Искаме да получим груба представа за името на всяка книга. Можем обаче да извлечем само първите 15 знака от колоната с име на таблицата:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
Командата ще върне следното:
Вече имаме груба представа за името на всяка книга.
Съпоставяне на поднизове с SQL регулярен израз
In PostgreSQL, можем да извлечем подниз, съответстващ на определен 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. В шаблона търсим цифров модел в нашия низ, когато това бъде намерено, функцията за подниз трябва да извлече само два знака.
Как да съпоставите поднизове с помощта на 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 Функцията Substring помага при извличане и връщане само на част от низ.
- Първият символ на низа е на позиция 1.
- Ако броят знаци, които трябва да бъдат извлечени от низа, не е посочен, функцията ще извлече знаци от указаната начална позиция до края на низа.
- Ако е посочен броят знаци за извличане, само този брой знаци ще бъдат извлечени.
Изтеглете базата данни, използвана в този урок