Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да премахнете водещи и последващи знаци в SQL Server

В 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. За Nvarchar(Max) получавам само 4000 знака в TSQL?

  2. върне стойност на позиция от STRING_SPLIT в SQL Server 2016

  3. как да присвоите стойност на cte на променлива

  4. sql сървър невалидно име на обект - но таблиците са изброени в списъка с SSMS таблици

  5. Отстраняване на неизправности при продължителни заявки в MS SQL Server