Вітаю всіх відвідувачів сайту 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 відпрацювала коректно, підтверджуючи той факт, що вона вміє видаляти і інші символи з рядка, відмінні від пробілів.