Функції trim, ltrim і rtrim в t-sql – опис, відмінності і приклади

66

Вітаю всіх відвідувачів сайту info-comp.ru! сьогодні ми з вами поговоримо про рядкових функціях мови t-sql, зокрема про trim, ltrim і rtrim, ви дізнаєтеся, як працюють ці функції і чим вони відрізняються один від одного, крім цього ми розберемо кілька прикладів їх використання.

Рядкові функції в microsoft sql server

рядкові функції 8>–>- це функції мови t-sql, призначені для роботи з рядками, іншими словами, з текстовими значеннями в стовпцях, тобто. Ці функції виконують різні операції над текстом.

У microsoft sql server існує досить багато рядкових функцій, які виконують різні операції над текстом, наприклад:

  • lower – функція повертає рядок, в якому всі символи верхнього регістру перетворені в символи нижнього регістру;
  • upper-функція повертає рядок, в якій всі символи нижнього регістру перетворені в символи верхнього регістру;
  • len-функція повертає кількість символів зазначеного рядкового виразу, виключаючи кінцеві прогалини;
  • left – функція повертає вказане число символів символьного виразу ліворуч;
  • right – функція повертає вказане число символів символьного виразу праворуч;
  • substring – функція повертає частину рядка, починаючи з вказаної позиції і певну кількість символів;
  • replace – замінює всі входження зазначеного рядкового значення іншим рядковим значенням;
  • та інші.

Сьогодні, як було вже зазначено, ми детально розглянемо функції: trim, ltrim і rtrim .

Вихідні дані для прикладів

Щоб наочно було видно, як працюють функції trim, ltrim і rtrim, давайте спочатку створимо відповідні тестові дані, які ми будемо використовувати у всіх прикладах цієї статті.

Припустимо, у нас буде таблиця goods, в якій два стовпці: перший — productid з цілочисельним типом даних, а другий — productname з текстовим типом даних, і цей стовпець у нас буде містити текст з пробілами, як на початку, так і в кінці.

–створення таблиці create table goods ( productid int identity(1,1) not null, productname varchar(100) null ); –додавання даних в таблицю insert into goods(productname) values (‘системний блок’), — без пробілів (‘ клавіатура’), — пробіл на початку (‘монітор ‘), — пробіл в кінці (‘ планшет ‘); — пробіл і на початку, і в кінці select productid, productname from goods;

примітка! якщо вас цікавить мова sql, то рекомендую почитати книгу» sql код ” – це самовчитель з мови sql для початківців програмістів. У ній дуже детально розглянуті основні конструкції мови.

Функція ltrim в t-sql

ltrim 8>–>- функція t-sql, яка повертає символьний вираз після видалення пробілів на початку рядка. У функції один параметр, в якому ми вказуємо текстовий рядок даних.

синтаксис

ltrim (текст);

У функцію можна передати текстовий рядок як у вигляді константного рядка, так і у вигляді стовпця таблиці або змінної.

Параметр, який передається в функцію, обов’язково повинен мати текстовий тип даних, або тип, який може бути неявно перетворений в тип varchar.

Повертає функція результат з типом даних varchar або nvarchar.

Давайте подивимося на роботу даної функції.

Ми бачимо, що функція ltrim видалила всі прогалини зліва, тобто на початку рядка.

Функція rtrim в t-sql

rtrim 8>–>- функція t-sql, яка повертає символьний вираз після видалення пробілів в кінці рядка. В якості вхідних даних rtrim також приймає один параметр, тобто безпосередньо саму текстовий рядок. Параметр повинен мати текстовий тип даних, або тип, який може бути неявно перетворений в тип varchar.

синтаксис

rtrim (текст);

У цю функцію також можна передати текстовий рядок як у вигляді константного рядка, так і у вигляді стовпця таблиці або змінної.

Функція повертає результат з типом даних varchar або nvarchar.

Приклад роботи даної функції.

В даному випадку робота функції rtrim не так помітна, як у випадку з ltrim, але прогалини справа були видалені.

Функція trim в t-sql

trim 8>–>- функція t-sql, яка повертає символьний вираз після видалення пробілів як на початку, так і в кінці рядка. Якщо бути точніше, функція видаляє символ пробілу на початку і в кінці рядка, проте крім цього вона може видаляти і інші символи, які ви вкажете.

Ця функція з’явилася тільки в microsoft sql server 2017, до цієї версії, у разі якщо необхідно видалити пробіли і на початку, і в кінці рядка, то потрібно використовувати поєднання функцій ltrim і rtrim, іншими словами, робота функції trim еквівалента висловом

ltrim(rtrim(‘текстовий рядок’));

синтаксис

trim ( [ characters from ] string );

Де,

  • characters – літеральна рядок, що містить символ або символи, які необхідно видалити. Якщо не вказано цей параметр, за замовчуванням будуть видалятися прогалини;
  • string-символьний вираз, з якого слід видалити символи.

Тип даних результату, який повертає функція trim, матиме тип даних параметра string.

Приклад видалення пробілів за допомогою trim

select productname as [початкове значення], trim(productname) as [trim] from goods;

У цьому прикладі ми видаляємо пробіли як на початку, так і в кінці значень стовпця productname. Функція успішно відпрацювала.

Приклад видалення зазначених символів за допомогою trim

В даному випадку давайте замість пробілів видалимо інші символи з рядка, використовуючи при цьому все ту ж функцію trim, наприклад, просто закінчення одного з текстових значень, припустимо «ок» у значення «системний блок».

Для цього в функцію trim ми передамо в якості параметра символи, які необхідно видалити, вкажемо ключове слово from, а після передамо стовпець, що містить текстові дані.

Ми бачимо, що закінчення «ок» у значення «системний блок» немає, це говорить про те, що функція trim відпрацювала коректно, підтверджуючи той факт, що вона вміє видаляти і інші символи з рядка, відмінні від пробілів.