В SQL Server TRIM()
функцията обикновено се използва за премахване на водещи и крайни празни интервали от низ. Но знаете ли, че можете да премахнете и други знаци от началото/края на низ? Не е задължително да е празно място.
TRIM()
е T-SQL функция, която специално премахва символа за интервал char(32)
или други посочени знаци от началото или края на низ.
Синтаксис
Синтаксисът е така:
TRIM ( [ characters FROM ] string )
string
аргументът е задължителен аргумент – това е действителният низ за изрязване.
characters FROM
е незадължителен аргумент е битът, който ви позволява да посочите кои знаци трябва да бъдат премахнати (ако приемем, че не премахвате само символа за интервал). Ако не посочите кои знаци, тогава символът за интервал ще бъде изрязан.
Пример
Ето един основен пример за изрязване на водещи и крайни знаци за равенство (=
) от низ:
SELECT TRIM('=' FROM '=SPECIALS=') AS Result;
Резултат
Result -------- SPECIALS
Множество екземпляра на знак
Той също така изрязва множество екземпляри на посочения знак.
Пример:
SELECT TRIM('=' FROM '===SPECIALS===') AS Result;
Резултат:
Result -------- SPECIALS
Изрязване на няколко знака
Освен това ви позволява да отрежете няколко знака.
Пример:
SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;
Резултат:
Result -------- SPECIALS
Вградено бяло пространство
Ако вътре в отрязания/ите знак/и съществува празно пространство, не очаквайте този празен интервал да бъде изрязан (освен ако не посочите изрично знака за интервал като един от знаците, които трябва да бъдат изрязани).
Ето какво имам предвид:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Резултат:
Result -------------- SPECIALS
В този случай знакът за равенство се изрязва, но остава бялото пространство. Това е така, защото бялото пространство не е непосредствено отляво и/или отдясно на низа.
Ако искаме да премахнем и двата знака за равенство и празното пространство, можем просто да добавим символ за интервал към списъка със знаци за отрязване:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Резултат:
Result -------- SPECIALS
Знаци, заобиколени от празно пространство
Подобно на предишния пример, не можете да очаквате SQL Server да отреже посочения знак, ако има интервал между него и началото/края на низа.
Например:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Резултат:
Result ---------------- =SPECIALS=
В този пример нищо не е подрязано. Това е така, защото има празно пространство между знаците за равенство и началото/края на низа.
В този случай можете просто да добавите символа за интервал като един от знаците, които трябва да бъдат изрязани:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Резултат:
Result -------- SPECIALS
За повече примери за използване на TRIM()
за да отрежете празно пространство отляво и отдясно на низ, вижте Как да премахнете водещите и крайните празни пространства в SQL Server.