Контакти

Sql додати символи на початок рядка. Рядкові функції SQL - приклади використання. Символьні функції в sql

Ми продовжуємо вивчення мови запитів SQL, і сьогодні ми з Вами розмовлятимемо про рядкових функціях SQL. Ми розглянемо основні рядкові функції, що часто використовуються, такі як: LOWER, LTRIM, REPLACEта інші, всі розглядати ми, звичайно ж, на прикладах.

SELECT name || surname AS FIO FROM table

Або щоб відокремити пробілом, введіть

SELECT name || "" || surname AS FIO FROM table

тобто. дві вертикальні риси об'єднують два стовпці в один, а щоб відокремити їх пробілом я поставив між ними пробіл ( можна використовувати будь-який символ, наприклад тире або двокрапка) в апострофах і об'єднав також двома вертикальними рисами ( в Transact-SQL замість двох вертикальних рис використовується знак +).

Функція INITCAP

Далі йде також дуже корисна функція, INITCAP– яка повертає значення у рядку, у якому кожне слово починається з великої літери, а продовжується маленькими. Це потрібно для того, якщо у Вас в тій чи іншій колонці не дотримуються правил заповнення і для того, щоб вивести всю цю справу в красивому вигляді, можна використовувати цю функцію, наприклад, у Вас у таблиці запису в колонці name наступного виду: ІВАН іванів або Петро петрів, Ви використовуєте цю процедуру.

SELECT INITCAP (name) AS FIO FROM table

І у Вас вийде так.

Функція UPPER

Схожа функція, тільки повертає всі символи з великої літери, це UPPER.

SELECT UPPER (назва) AS FIO FROM table

  • name – назва колонки;
  • 20 – кількість знаків ( довжина поля);
  • '-' – символ, яким потрібно доповнити до необхідної кількості символів.

Функція RPAD

Відразу розглянемо зворотну функцію. RPAD- дія і синтаксис той же, що і у LPAD, тільки доповнюються символи справа ( в LPAD ліворуч).

SELECT RPAD (name, 20, "-") AS name FROM table

Іван—————-
Сергій-----

Функція LTRIM

Далі йде також у деяких випадках корисна функція, LTRIM– ця функція видаляє ліві символи, які Ви вкажете. Наприклад, у Вас у базі є колонка «місто», в якій місто вказано у вигляді «м.Москва», а також є міста, які вказані у вигляді просто «Москва». Але Вам потрібно вивести звіт лише у вигляді «Москва» без «р.», але як це зробити, якщо є такі? Ви просто вказуєте своєрідний шаблон «г.» і якщо крайні ліві символи починаються з «р.», ці символи просто виводитися.

SELECT LTRIM (city, "р.") AS gorod FROM table

Ця функція переглядає символи ліворуч, якщо символів за шаблоном немає на початку рядка, вона повертає початкове значення осередку, а якщо є, то видаляє їх.

Функція RTRIM

Також давайте одразу розглянемо зворотну функцію. RTRIM– те саме, що й LTRIM тільки символи шукаються праворуч.

Примітка! У Transact-SQL функції RTRIM та LTRIM видаляють прогалини праворуч і ліворуч відповідно.

Функція REPLACE

Тепер розглянемо таку цікаву функцію як REPLACE– вона повертає рядок, де всі збіги символів, замінюються на Ваші символи, які Ви вкажете. Для чого її можна використовувати, наприклад, у Вас в базі є колонки, в яких зустрічаються деякі розділові символи, наприклад «/». Наприклад, Іван/Іванов, а Вам хотілося б вивести Іван-Іванов, то напишіть

SELECT REPLACE (name, "/", "-") FROM table

і у Вас буде заміна символів.

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

Функція TRANSLATE

TRANSLATE– рядкова функція, яка замінює всі символи в рядку, на символи, які Ви вкажіть. З назви функції, можна здогадатися, що це повний переклад рядка. Відмінність цієї функції від REPLACE у цьому, що вона замінює кожен символ, який Ви вкажіть, тобто. у Вас є три символи, припустимо абв і за допомогою TRANSLATE Ви можете замінити його на abc таким чином у Вас а=a, б=b, в=c і за таким принципом будуть замінюватися всі збіги символів. А якщо Ви замінювали за допомогою REPLACE, то у Вас шукався тільки повний збіг символів абв розташованих поспіль.

Функція SUBSTR

SUBSTR– дана функція, повертає лише діапазон символів, який Ви вкажете. Іншими словами, припустимо, рядок з 10 символів, а Вам всі десять не потрібні, а припустимо, потрібні лише 3-8 ( з третього по восьму). За допомогою цієї функції Ви легко можете це зробити. Наприклад, у Вас в базі є якийсь ідентифікатор, фіксованої довжини (типу: AA-BB-55-66-CC) та кожна комбінація символів щось означає. І одного разу Вам сказали вивести лише 2 та 3 комбінацію символів, для цього ви пишіть запит наступного виду.

SELECT SUBSTR (ident, "4", "8")

тобто. ми виводимо всі символи, починаючи з 4 і до 8, і після цього запиту у Вас виведеться ось це:

Функція LENGTH – довжина рядка

Наступна функція також може стати в нагоді, це LENGTH– яка просто всього вважає кількість символів у рядку. Наприклад, Вам потрібно дізнатися, скільки символів у кожному осередку стовпця допустимо "name", таблиця наступного виду.

SELECT LENGTH (name) FROM table

після цього запиту Ви отримаєте це.

4
6
7

Ось ми з Вами розглянули основні рядкові функції SQL. У наступних статтях продовжимо вивчення SQL.

Рядкові функції Sql

Ця група функцій дає змогу маніпулювати текстом. Рядкових функцій багато, ми розглянемо найбільш уживані.
  • CONCAT(str1,str2...) Повертає рядок, створений шляхом об'єднання аргументів (аргументи вказуються у дужках - str1,str2...). Наприклад, у нашій таблиці Постачальники (vendors) є стовпець Місто (city) та стовпець Адреса (address). Припустимо, хочемо, щоб у результуючій таблиці Адреса і Місто вказувалися у одному стовпці, тобто. ми хочемо поєднати дані з двох стовпців в один. Для цього ми будемо використовувати рядкову функцію CONCAT(), а як аргументи вкажемо назви стовпців, що об'єднуються - city і address:

    SELECT CONCAT(city, address) FROM vendors;


    Зверніть увагу, що об'єднання відбулося без поділу, що не дуже читальне. Давайте підправимо наш запит, щоб між стовпцями, що об'єднуються, був пробіл:

    SELECT CONCAT(city, " ", address) FROM vendors;


    Як бачите, пропуск вважається теж аргументом і вказується через кому. Якщо стовпців, що об'єднуються, було б більше, то вказувати щоразу прогалини було б нераціонально. У цьому випадку можна було б використати рядкову функцію CONCAT_WS(розділювач, str1,str2...), яка поміщає роздільник між рядками, що об'єднуються (розділювач вказується, як перший аргумент). Наш запит буде виглядати так:

    SELECT CONCAT_WS(" ", city, address) FROM vendors;

    Результат зовні не змінився, але якби ми об'єднували 3 або 4 стовпці, то код значно скоротився б.


  • INSERT(str, pos, len, new_str)Повертає рядок str, у якому підрядок, що починається з позиції pos і має довжину len символів, замінена підрядком new_str. Припустимо, ми вирішили в стовпці Адреса (address) не відображати перші 3 символи (скорочення вул., пр., і т.д.), тоді ми замінимо їх на прогалини:

    SELECT INSERT(address, 1, 3, " ") FROM vendors;


    Тобто три символи, починаючи з першого, замінені трьома пробілами.


  • LPAD(str, len, dop_str) Повертає рядок str, доповнений зліва рядком dop_str до довжини len. Припустимо, ми хочемо, щоб при виведенні міст постачальників вони були б праворуч, а порожній простір заповнювався б точками:

    SELECT LPAD(city, 15, ".") FROM vendors;



  • RPAD(str, len, dop_str) Повертає рядок str, доповнений праворуч рядком dop_str до довжини len. Припустимо, ми хочемо, щоб при виведенні міст постачальників вони були б ліворуч, а порожній простір заповнювався б точками:

    SELECT RPAD(city, 15, ".") FROM vendors;


    Зверніть увагу, значення len обмежує кількість символів, що виводяться, тобто. якщо назва міста буде довшою за 15 символів, то вона буде обрізана.


  • LTRIM(str) Повертає рядок str, у якому видалено всі початкові пробіли. Ця рядкова функція зручна для коректного відображення інформації у випадках, коли під час введення даних допускаються випадкові прогалини:

    SELECT LTRIM (City) FROM vendors;


  • RTRIM(str) Повертає рядок str, у якому видалені всі кінцеві пробіли:

    SELECT RTRIM (City) FROM vendors;

    У нашому випадку зайвих прогалин не було, тому результат зовні ми не побачимо.


  • TRIM(str) Повертає рядок str, у якому видалені всі початкові та кінцеві пробіли:

    SELECT TRIM(city) FROM vendors;


  • LOWER(str) Повертає рядок str, де всі символи переведені в нижній регістр. З російськими літерами працює некоректно, тож краще не застосовувати. Наприклад, давайте застосуємо цю функцію до стовпця city:

    SELECT city, LOWER(city) FROM vendors;


    Бачите, яка абракадабра вийшла. А ось з латиницею все гаразд:

    SELECT LOWER("CITY");



  • UPPER(str) Повертає рядок str, де всі символи переведені у верхній регістр. З російськими літерами також краще не застосовувати. А ось з латиницею все гаразд:

    SELECT UPPER(email) FROM customers;



  • LENGTH(str) Повертає довжину рядка str. Наприклад, давайте дізнаємось скільки символів у наших адресах постачальників:

    SELECT address, LENGTH(address) FROM vendors;



  • LEFT(str, len) Повертає len ліві символи рядка str. Наприклад, нехай у містах постачальників виводиться лише перші три символи:

    SELECT name, LEFT(city, 3) FROM vendors;



  • RIGHT(str, len) Повертає len праві символи рядка str. Наприклад, нехай у містах постачальників виводиться лише останні три символи: SELECT LOAD_FILE("C:/proverka");
    Зверніть увагу, необхідно вказувати абсолютний шлях до файлу.

Як уже згадувалося, рядкових функцій набагато більше, але навіть деякі розглянуті тут застосовуються вкрай рідко. Тому на цьому закінчимо їх розгляд і перейдемо до функцій дати і часу, що використовуються.

В інші. Вона має наступний синтаксис:

CONV(число,N,M)

Аргумент числоперебуває у системі числення з підставою N. Функція переводить їх у систему числення з підставою M і повертає значення вигляді рядка.

Приклад 1

Наступний запит переводить число 2 із десяткової системи обчислення в двійкову:

SELECT CONV(2,10,2);

Результат: 10

Для переведення числа 2E з шістнадцяткової системи в десяткову потрібен запит:

SELECT CONV("2E",16,10);

Результат: 46

Функція CHAR()перекладає ASCII-код у рядки. Вона має наступний синтаксис:

CHAR(n1,n2,n3..)

Приклад 2

SELECT CHAR(83,81,76);

Результат: SQL

Наступні функції повертають довжину рядка:

  • LENGTH(рядок);
  • OCTET_LENGTH(рядок);
  • CHAR_LENGTH(рядок);
  • CHARACTER_LENGTH(рядок).

Приклад 3

SELECT LENGTH("MySQL");

Результат: 5

Іноді буває корисною функція BIT_LENGTH(рядок)що повертає довжину рядка в бітах.

Приклад 4

SELECT BIT_LENGTH("MySQL");

Результат: 40

Функції роботи з підрядками

Підрядком зазвичай називають частину рядка. Часто потрібно дізнатися позицію першого входження підрядка в рядок. Це завдання в MySQL вирішують три функції:

  • LOCATE(підрядок, рядок [,позиція]);
  • POSITION (підрядок, рядок);
  • INSTR(рядок, підрядок).

Якщо рядок не міститься в рядку, всі три функції повертають значення 0. Функція INSTR() відрізняється від двох інших порядком аргументів. Функція LOCATE() може містити третій аргумент позиція, який дозволяє шукати підрядок у рядку не з початку, а із зазначеної позиції.

Приклад 5

SELECT LOCATE("Топаз", "відкрите акціонерне товариство Топаз");

Результат: 31

SELECT POSITION("Топаз", "відкрите акціонерне товариство Топаз");

Результат: 31

SELECT INSTR("відкрите акціонерне товариство Топаз",'Топаз');

Результат: 31

SELECT LOCATE("Топаз", "Завод Топаз та ТОВ Топаз", 9);

Результат: 20

SELECT LOCATE("Алмаз", "відкрите акціонерне товариство Топаз");

Результат: 0

Функції LEFT(рядок, N)і RIGHT(рядок, N)повертають відповідно крайні ліві та крайні праві N символів у рядку.

Приклад 6

SELECT LEFT("СУБД MySQL", 4);

Результат: СУБД

SELECT RIGHT("СУБД MySQL", 5);

Результат: MySQL

Іноді потрібно отримати підрядок, який починається з певної заданої позиції. Для цього використовуються функції:

  • SUBSTRING(рядок, позиція, N);
  • MID (рядок, позиція, N).

Обидві функції повертають N символів заданого рядка, розташованих з зазначеної позиції.

Приклад 7

SELECT SUBSTRING("СУБД MySQL - одна з найпопулярніших СУБД", 6,5);

Результат: MySQL

При роботі з електронними адресами та адресами сайтів дуже корисна функція SUBSTR_INDEX(). Функція має три аргументи:

SUBSTR_INDEX(рядок, роздільник, N).

Аргумент N може бути позитивним чи негативним. Якщо він негативний, то функція знаходить N-е входження роздільника, якщо вважати праворуч. Після чого повертає підрядок, розташований праворуч від знайденого роздільника. Якщо N позитивно, то функція знаходить N-е входження роздільника зліва і повертає підрядок, розташовану зліва від знайденого роздільника.

Приклад 8

SELECT SUBSTRING_INDEX("www.mysql.ru",".",2);

Результат: www.mysql

SELECT SUBSTRING_INDEX("www.mysql.ru",".",-2);

Результат: mysql.ru

Функція REPLACE (рядок, підрядок 1, підрядок 2)дозволяє замінити в рядку всі входження підрядка1 на підрядок2.

Основні рядкові функції та оператори надають різноманітні можливості та повертають як результат рядкове значення. Деякі рядкові функції є двоелементними, що означає, що можуть працювати одночасно з двома рядками. Стандарт SQL 2003 підтримує рядкові функції.

Оператор конкатенації

SQL 2003 визначається оператор конкатенації (||), який з'єднує два окремі рядки в одне рядкове значення.

DB2 платформа

Платформа DB2 підтримує оператор конкатенації SQL 2003, а також його синонім-функцію CONCAT.

MySQL платформа

Платформа MySQL підтримує функцію CONCATQ – синонім оператора конкатенації SQL 2003.

Oracle та PostgreSQL

Платформи PostgreSQL і Oracle підтримують оператор конкатенації SQL 2003 як подвійний вертикальної риси.

SQL Server платформа

Платформа SQL Server використовує знак плюса (+) як синонім оператора конкатенації SQL 2003. SQL Server має системний параметр CONCAT_NULL_YIELDS_NULL, який регулює поведінку системи, якщо при конкатенації рядкових значень зустрічаються значення NULL.

/* Синтаксис SQL 2003 */

stringl || string2 || string3

string1string2string3

/* Для MySQL */

CONCAT("stringl", "string2")

Якщо будь-яке зі значень, що з'єднуються - порожнє, то повертається порожній рядок. Крім того, якщо в конкатенації бере участь числове значення, воно неявно перетворюється на рядкове.

SELECT CONCAT("My", "bologna", "has", "a", "first", "name…");

My bologna has a first name

SELECT CONCAT("My", NULL, "has", "first", "name...");

CONVERT та TRANSLATE

Функція CONVERT змінює відображення символьного рядка в межах набору символів та зіставлення. Наприклад, функцію CONVERT можна використовувати для зміни кількості бітів, що припадають на один символ.

Функція TRANSLATE переводить рядкове значення з одного набору символів до іншого. Так, функцію TRANSLATE можна використовувати для перетворення значення набору символів English на набір символів Kanji (японський) або Cyrillic (російський). Сам переклад вже повинен існувати або заданий за замовчуванням, або створений за допомогою команди CREATE TRANSLATION.

Синтаксис SQL 2003

CONVERT (символьне_значення USING ім'я_символьного_перетворення)

TRANSLATE(символьне значення USING ім'я_перекладу)

Функція CONVERT перетворює символьне значення до набору символів з ім'ям, вказаним у параметрі имя_символьного преобразования. Функція TRANSLATE перетворює символьне значення до набору символів, вказаних у імені_перекладу.

Серед платформ, що розглядаються, тільки Oracle підтримує функції CONVERT і TRANSLATE у тому вигляді, в якому вони визначаються в стандарті SQL 2003. Реалізація функції TRANSLATE в Oracle дуже подібна до SQL 2003, але не ідентична йому. У цій реалізації функція приймає лише два аргументи та здійснює переклад лише між набором символів бази даних та набором символів з підтримкою національної мови.

Реалізація функції CONV в MySQL лише переводить числа з однієї основи до іншого. А ось у SQL Server реалізація функції CONVERT дуже багата можливостями і змінює тип даних для вираження, але у всіх інших своїх аспектах вона відрізняється від функції CONVERТстандарту SQL 2003. Платформа PostgreSQL не підтримує функцію CONVERT, а реалізація функції TRANSLATE перетворює всі входження символьного рядка в будь-яке інший символьний рядок.

DB2

Платформа DB2 не підтримує функцію CONVERT, а підтримка функції TRANSLATE не відповідає стандарту ANSI. Функція TRANSLATE використовується для перетворення підрядків і, як історично склалося, є синонімом функції UPPER, оскільки функція UPPER тільки недавно була додана до DB2. Якщо функція TRANSLATE використовується в DB2 з єдиним аргументом у вигляді символьного виразу, результатом буде той самий рядок, перетворений у верхній регістр. Якщо функція використовується з кількома аргументами, наприклад TRANSLATE(ucmo4HUK, заміна, збіг), функція перетворює всі символи в джерелі, які також є в параметрі збіг. Кожен символ у джерелі, яке знаходиться в тому ж положенні, що у параметрі збіг, буде замінено символом із параметра заміни. Нижче наводиться приклад.

TRANSLATE("Hello, World! ") "HELLO; WORLD!"

TRANSLATE("Hello, World1", "wZ", "1W") "Hewwo, Zorwd1

MySQL

Платформа MySQL не підтримує функції TRANSLATE та CONVERT.

Oracle

Платформа Oracle підтримує наступний синтаксис функцій CONVERT та TRANSLATE.

У реалізації Oracle функція CONVERT повертає текст символьного значення, перетворений на цільовий_набір_символів. Параметр символьное_значение - це рядок, яку потрібно перетворити, параметр целевой_набор_символов - це назва набору символів, у якому потрібно перетворити рядок, а параметр исходный_набор символів - це набір символів, у якому строкове значення спочатку зберігалося.

Функція TRANSLATE в Oracle відповідає синтаксису ANSI, але ви можете вибирати лише один із двох наборів символів: набір символів бази даних (CHARJCS) та набір символів із підтримкою національної мови (NCHARJZS).

Oracle також підтримує іншу функцію, яка також називається TRANSLATE (без використання ключового слова USING). Ця функція TRANSLATE не пов'язана з перетворенням наборів символів.

Назви цільового та вихідного наборів символів можна передавати у вигляді рядкових констант, або у вигляді посилання на стовпець таблиці. Зверніть увагу, що при перетворенні рядка на набір символів, в якому відображаються не всі символи, що перетворюються, можна підставляти символи-замінники.

Oracle підтримує кілька загальних наборів символів, до яких належать US7ASCII, WE8DECDEC. WE8HP, F7DEC, WE8EBCDIC500, WE8PC850u WE8ISO8859PI. Наприклад:

SELECT CONVERT("Gro2", "US7ASCII", "WE8HP") FROM DUAL;

PostgreSQL

Платформа PostgreSQL підтримує інструкцію CONVERT стандарту ANSI, а перетворення можна визначати за допомогою команди CREATE CONVERSION. Реалізація функції TRANSLATE в PostgreSQL надає розширений набір функцій, які дозволяють перетворити будь-який текст на інший текст у межах зазначеного рядка.

TRANSLATE (символьний рядок, з тексту, текст)

Ось кілька прикладів:

SELECT TRANSLATE("12345abcde", "5а", "XX"); "1234XXbcde" SELECT TRANSLATE(title, "Computer", "PC") FROM titles WHERE type="Personal_computer" SELECT CONVERT("PostgreSQL" USING iso_8859_1_to_utf_8) "PostgreSQL"

SQL Server

Платформа SQL Server не підтримує функцію TRANSLATE. Реалізація функції CONVERT у SQL Server не відповідає стандарту SQL 2003. Ця функція в SQL Server еквівалентна функції CAST.

CONVERT (тип_даних[(довжина) | (точність, масштаб)], вираз, стиль])

Пропозиція стиль використовується для визначення формату перетворення дати. За додатковою інформацією зверніться до документації SQL Server. Нижче наводиться приклад.

SELECT title, CONVERT(char(7), ytd_sales) FROM titles ORDER BY title GO

Сьогодні пропоную розглянути прості приклади використання рядкових функцій Transact-SQL, і непросто опис і приклади деяких функцій, які поєднання, тобто. як можна вкладати їх один в одного, тому що для реалізації багатьох завдань стандартних функцій буває недостатньо і їх використовувати спільно. І тому я хотів би показати Вам пару простих прикладів написання таких запитів.

Ми з Вами вже розглядали рядкові функції SQL, але так як реалізації даної мови в різних СУБД різні, наприклад деяких функцій немає в Transact-SQL, а в PL/PGSql вони є, і якраз минулого разу ми розглядали рядкові функції, які можна використовувати в plpgsql і тому сьогодні ми поговоримо про Transact-SQL.

Як можна поєднувати SUBSTRING, CHARINDEX та LEN

І так, наприклад, Вам потрібно шукати в рядку її частину за певним критерієм і вирізати її, і не просто шукати однотипну частину, а динамічно, тобто. для кожного рядка рядок пошуку буде різним. Приклади будемо писати у Management Studio SQL Server 2008.

Для цього ми будемо використовувати такі функції:

  • SUBSTRING(str, start, len) – дана функція вирізує частину рядка з іншого рядка. Має три параметри 1. Це самий рядок; 2. Початкова позиція, з якої потрібно почати вирізати; 3. Кількість символів, скільки потрібно вирізати.
  • CHARINDEX(str1, str2)- шукає str1 в str2 і повертає порядковий номер першого символу у разі такого рядка. Має третій необов'язковий параметр, за допомогою якого можна вказати, з якого боку починати пошук.
  • LEN(str1)-довжина рядка, тобто. кількість символів.

Як Ви бачите, тут я використав оголошення змінних, а Ви замість змінних можете підставляти свої поля у запиті. Ось сам код:

Declare @rezult as varchar(10) --початковий рядок declare @str1 as varchar(100) --рядок пошуку declare @str2 as varchar(10) set @str1 = "Пробний рядок string для пошуку в ньому іншого рядка" set @str2 = "string" set @rezult=substring(@str1,CHARINDEX(@str2, @str1), LEN(@str2)) select @rezult

Сенс тут ось у чому, ми, використовуючи функцію len дізнаємось, скільки символів необхідно вирізати, а charindex задає ту позицію, з якої необхідно починати вирізати, і відповідно substring виконує саму вибірку у рядку.

Як можна поєднувати LEFT, RIGHT та LEN

Припустимо, що Вам необхідно отримати перші кілька символів у рядку або перевірити ці перші символи в рядку на наявність чогось, наприклад, якийсь номер, а його довжина природно різна (приклад природно-тестовий).

  • Left(str, kol) – функції вирізує вказану кількість символів зліва, має два параметри першої це рядок а другий відповідно кількість символів;
  • Right(str, kol) — функції вирізує вказану кількість символів з право, параметри ті самі.

Тепер використовуватимемо прості запити до таблиці

Для початку створимо таблицю test_table:

CREATE TABLE ( IDENTITY(1,1) NOT NULL, (18, 0) NULL, (50) NULL, CONSTRAINT PRIMARY KEY CLUSTERED (ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF = ON) ON) ON GO

Заповнимо її тестовими даними і напишемо такі запити:

Як Ви розумієте перший запит, це просто вибірка всіх рядків (Основи SQL - оператор select), а другий це вже безпосередньо поєднання наших функцій, ось код:

Select * from test_table select number, left(text,LEN(number)) as str from test_table

А якби ці номери були праворуч, то ми використовували б функцію RIGHT.

Використання Rtrim, Ltrim, Upper та Lower у поєднанні

Допустивши у Вас, є рядок з пробілами на початку і в кінці, і Ви хотіли б, звичайно ж, їх позбутися і ще, наприклад, зробити, так що перша літера в цьому рядку стала великою.

  • Rtrim(str) -видаляє пробіли праворуч;
  • Ltrim(str) – видаляє пробіли зліва;
  • Upper(str) – наводить рядок у верхній регістр;
  • Lower(str) — наводить рядок у нижній регістр.

Як бачите, для закріплення ми тут використали ще й Substringі Len. Сенс запиту простий, ми видаляємо пробіли і праворуч і ліворуч, потім наводимо перший символ до верхнього регістру шляхом вирізування його, далі ми конкатенуємо (оператор +) цей символ з рядком, що залишився. Ось код:

Declare @str1 as varchar(100) set @str1 = " тестовий рядок з пробілами на початку і в кінці " select @str1 select upper(substring(rtrim(ltrim(@str1)),1,1))+ lower(substring( rtrim(ltrim(@str1)),2,LEN(rtrim(ltrim(@str1)))-1))

На сьогодні я думаю достатньо, і якщо Вам подобається програмувати на SQL, то на цьому сайті ми не раз торкалися цієї дуже цікавої теми, наприклад.



Сподобалась стаття? Поділіться їй