Sdílet prostřednictvím


TRIM (Transact-SQL)

Platí na: SQL Server 2017 (14.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

Odebere znak char(32) mezery nebo jiné zadané znaky ze začátku a konce řetězce.

Počínaje SQL Serverem 2022 (16.x) volitelně odebere znak mezery char(32) nebo jiné zadané znaky ze začátku, konce nebo obou stran řetězce.

Transact-SQL konvence syntaxe

Syntaxe

Syntax for SQL Server 2019 (15.x) a starší verze a Azure Synapse Analytics:

TRIM ( [ characters FROM ] string )

Syntax for SQL Server 2022 (16.x) a pozdější verze, Azure SQL Managed Instance, Azure SQL Database a Microsoft Fabric:

Důležité

Potřebujete úroveň kompatibility databáze nastavenou tak, aby 160 používala LEADINGklíčová slova , TRAILINGnebo BOTH klíčová slova.

TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )

Arguments

[ ÚVODNÍ | KONCOVÉ | OBA ]

Platí na: SQL Server 2022 (16.x) a pozdější verze, Azure SQL Managed Instance, Azure SQL Database a Microsoft Fabric:

Volitelný první argument určuje, která strana řetězce se má oříznout:

  • LEADING odebere znaky zadané od začátku řetězce.

  • TRAILING odebere znaky zadané na konci řetězce.

  • BOTH (výchozí poziční chování) odebere znaky zadané ze začátku a konce řetězce.

znaky

Literál, proměnná nebo volání funkce jakéhokoli jiného typu než LOB (nvarchar, varchar, nchar nebo char) obsahující znaky, které by měly být odebrány. Typy nvarchar(max) a varchar(max) nejsou povolené.

string

Výraz libovolného typu znaku (nvarchar, varchar, nchar nebo char), kde se mají odebrat znaky.

Návratové typy

Vrátí výraz znaku s typem řetězcového argumentu, kde je znak char(32) mezery nebo jiné zadané znaky odebrány z obou stran. Vrátí NULL , pokud je NULLvstupní řetězec .

Poznámky

Ve výchozím nastavení TRIM funkce odebere znak mezery z počátečního i koncového řetězce. Toto chování je ekvivalentní LTRIM(RTRIM(@string)).

Chcete-li povolit volitelné LEADINGargumenty , TRAILINGnebo BOTH poziční argumenty v SYSTÉMU SQL Server 2022 (16.x), je nutné povolit úroveň 160 kompatibility databáze v databázi, ke které se připojujete při provádění dotazů.

  • S volitelným LEADING pozičním argumentem je chování ekvivalentní LTRIM(@string, characters).
  • S volitelným TRAILING pozičním argumentem je chování ekvivalentní RTRIM(@string, characters).

Examples

A. Odebrání znaku mezery z obou stran řetězce

Následující příklad odebere mezery před a za slovem test.

SELECT TRIM( '     test    ') AS Result;

Tady je soubor výsledků.

test

B. Odebrání zadaných znaků z obou stran řetězce

Následující příklad obsahuje seznam možných znaků pro odebrání z řetězce.

SELECT TRIM( '.,! ' FROM '     #     test    .') AS Result;

Tady je soubor výsledků.

#     test

V tomto příkladu byly odebrány pouze koncové tečky a mezery před # a po slově test . Ostatní znaky byly ignorovány, protože v řetězci neexistují.

C. Odebrání zadaných znaků od začátku řetězce

Důležité

Potřebujete úroveň kompatibility databáze nastavenou tak, aby 160 používala LEADINGklíčová slova , TRAILINGnebo BOTH klíčová slova.

Následující příklad odebere úvodní . z začátku řetězce před slovem test.

SELECT TRIM(LEADING '.,! ' FROM  '     .#     test    .') AS Result;

Tady je soubor výsledků.

#     test    .

D. Odebrání zadaných znaků z konce řetězce

Důležité

Potřebujete úroveň kompatibility databáze nastavenou tak, aby 160 používala LEADINGklíčová slova , TRAILINGnebo BOTH klíčová slova.

Následující příklad odebere koncové . od konce řetězce za slovem test.

SELECT TRIM(TRAILING '.,! ' FROM '     .#     test    .') AS Result;

Tady je soubor výsledků.

     .#     test

E. Odebrání zadaných znaků od začátku a konce řetězce

Důležité

Potřebujete úroveň kompatibility databáze nastavenou tak, aby 160 používala LEADINGklíčová slova , TRAILINGnebo BOTH klíčová slova.

Následující příklad odebere znaky 123 od začátku a konce řetězce 123abc123.

SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;

Tady je soubor výsledků.

abc