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);

Командата ще върне следното:

PostgreSQL Подниз

Не уточнихме началната позиция, така че бившиятtracИзтриването на подниз започва от позиция 1. 4 символа бяха изтритиtracтрябваше да върне горното.

Следният пример показва как да посочите началната позиция:

SELECT substring('Guru99' from 1 for 4);

Командата ще върне следното:

PostgreSQL Подниз

Уточнихме, че бившиятtracПоднизът трябва да започва от позиция 1 и 4 символа трябва да бъдатtracТед.

Нека бъдем бившиtract 99 от низа Guru99:

SELECT substring('Guru99' from 5);

Командата ще върне следното:

PostgreSQL Подниз

Зададохме началната позиция като 5. Тъй като броят на символите, които ще бъдат извлечени,tracТед не беше посочен, бившиятtracцията стигна до края на връвта.

Ето още един пример:

SELECT substring('Guru99' from 5 for 2);

Командата ще върне следното:

PostgreSQL Подниз

Започнахме бившеtracция на позиция 5 и 2 символа са били премахнатиtracТед.

Разгледайте таблицата на книгата, дадена по-долу:

PostgreSQL Подниз

Искаме да добием приблизителна представа за името на всяка книга. Можем обаче да предположимtracсамо първите 15 знака от колоната с име на таблицата:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Командата ще върне следното:

PostgreSQL Подниз

Вече имаме груба представа за името на всяка книга.

Съпоставяне на поднизове с 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;

Командата ще върне следното:

Съпоставяне на поднизове с SQL регулярен израз

Входният ни низ е „вашата възраст е 22“. В шаблона търсим числов шаблон в нашия низ и когато такъв бъде намерен, функцията за подниз трябва само да извеждаtracдва знака.

Как да съпоставите поднизове с помощта на pgAdmin

Сега нека видим как се извършват действията с pgAdmin.

Горните заявки, при които не се нуждаем от база данни, могат да бъдат изпълнени директно от прозореца на редактора на заявки. Просто направете следното:

Стъпка 1) Влезте в акаунта си.
Влезте във вашия pgAdmin акаунт.

Стъпка 2) В pgAdmin,
Щракнете върху иконата на инструмента за заявки.

Съвпадащи поднизове с помощта на pgAdmin

Ще се отвори прозорецът на редактора на заявки.

Стъпка 3) Тип заявка.
Въведете следната заявка в прозореца на редактора.

SELECT substring('Guru99' for 4);

Стъпка 4) Изпълнение на заявка
Щракнете върху иконата Изпълнение, за да изпълните заявката.

Съвпадащи поднизове с помощта на pgAdmin

Стъпка 5) Изпълнението на заявката е извършено.
Трябва да върне следното:

Съвпадащи поднизове с помощта на pgAdmin

Пример 2:

SELECT substring('Guru99' from 1 for 4);

Трябва да върне следното:

Съвпадащи поднизове с помощта на pgAdmin

Ето следващия пример:

SELECT substring('Guru99' from 5);

Трябва да върне следното:

Съвпадащи поднизове с помощта на pgAdmin

Пример 3:

SELECT substring('Guru99' from 5 for 2);

Трябва да върне следното:

Съвпадащи поднизове с помощта на pgAdmin

Сега нека изпълним примера с помощта на таблицата Book на базата данни Demo:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2)

  1. От лентата за навигация вляво щракнете върху Бази данни.
  2. Щракнете върху Демо.

Съвпадащи поднизове с помощта на pgAdmin

Стъпка 3) Въведете заявката в редактора на заявки:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Стъпка 4) Щракнете върху бутона Изпълнение.

Съвпадащи поднизове с помощта на pgAdmin

Трябва да върне следното:

PostgreSQL Подниз

Вече имаме основна представа за името на всяка книга.

Съпоставяне на поднизове с SQL регулярен израз

За да постигнете същото на pgAdmin, направете следното:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2) Щракнете върху иконата на инструмента за заявки.

Съпоставяне на поднизове с SQL регулярен израз

Ще се отвори прозорецът на редактора на заявки.

Стъпка 3) Въведете следната заявка в прозореца на редактора.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Стъпка 4) Щракнете върху иконата Изпълнение, за да изпълните заявката.

Съпоставяне на поднизове с SQL регулярен израз

Трябва да върне следното:

Съпоставяне на поднизове с SQL регулярен израз

Oбобщение

  • - PostgreSQL Функцията за подниз помага в extracобработка и връщане само на част от низ.
  • Първият символ на низа е на позиция 1.
  • Ако броят на знаците, които ще бъдат extracАко извлечението от низа не е посочено, функцията ще се изпълниtract символа от посочената начална позиция до края на низа.
  • Ако броят на знаците, които ще бъдат extracted е посочен, ще бъдат използвани само този брой знациtracТед.

Изтеглете базата данни, използвана в този урок

Обобщете тази публикация с: