V tomto článku přezkoumáme novou funkci SQL TRIM v SQL Server 2017 a dále a poskytuje některé informace o funkcích řetězců, které jej předcházejí jako LTRIM A RTRIM.
Vývojáři SQL obvykle čelí problémům s mezerami na začátku a / nebo konci řetězce znaků. Možná budeme muset oříznout úvodní a koncové znaky z řetězce znaků. Možná budeme muset provést manipulaci s řetězci také s funkcemi SQL. Předpokládejme, že chceme odstranit mezery z koncového konce řetězce, budeme potřebovat používat funkce SQL LTRIM a RTRIM až do SQL Server 2016.
V SQL Server 2017 získáme novou integrovanou funkci ořízněte úvodní i koncové znaky společně s jedinou funkcí. Funkce SQL TRIM poskytuje další funkce odstraňování znaků ze zadaného řetězce. Funkci RTRIM a LTRIM můžeme stále používat i na serveru SQL Server 2017. Prozkoumejme tyto funkce na příkladech.
Funkce SQL LTRIM
Odstraní znaky od začátku (od levé strany) zadaného řetězce. V následujícím dotazu máme mezeru před a za řetězcem. Musíme odstranit prostor z levé strany řetězce pomocí funkce LTRIM.
Pomocí funkce SQL DATALENGTH () vypočítáme délku dat v bajtech před a po použití funkce SQL LTRIM.
- Velikost datového řetězce v bajtech pro původní řetězec: 24
- velikost datového řetězce v bajtech po SQL LTRIM: 18
funkce SQL RTRIM
Odstraní znaky z konce ((od pravé strany) zadaného řetězce. Spustíme následující dotaz, abychom se podívali na účinek funkce SQL RTRIM.
- Velikost datového řetězce v bajtech pro původní řetězec: 24
- velikost datového řetězce v bajtech po SQL RTRIM: 16
Funkce TRIM v SQL Serveru 2017
Před SQL Serverem 2017, pokud potřebujeme odebrat úvodní i tréninkový prostor, musíme použít funkci LTRIM i RTRIM. V následujícím dotazu , s řetězcovou proměnnou jsme použili funkce LTRIM i RTIM.
Na následujícím snímku obrazovky vidíme, že odstraňuje jak úvodní, tak tra iling space from the string.
- Velikost datového řetězce v bajtech pro původní řetězec: 24
- velikost datového řetězce v bajtech po SQL LTRIM: 11
- Velikost datového řetězce v bajtech pro původní řetězec: 25
- velikost datového řetězce v bajtech po SQL LTRIM a RTRIM: 11
K odstranění mezer z řetězce musíme použít dvě funkce. Můžeme použít jednu instanci funkce TRIM v SQL Server 2017 dále k oříznutí úvodních i koncových znaků, pojďme prozkoumat funkci TRIM v další části tohoto článku.
Syntaxe funkce TRIM
1
|
TRIM (řetězec)
|
- TrimCharacter: Můžeme určit znak, který se má z řetězce odebrat. Ve výchozím nastavení SQL Server odstraní mezery z obou stran řetězce.
- Řetězec: Musíme zadat řetězec, který chceme oříznout.
Pojďme prozkoumat funkci SQL TRIM pomocí příklady.
TRIM Úvodní a tréninkové prostory:
Ve výchozím nastavení funkce Oříznout odstraní prostor z obou stran řetězce. V následujícím dotazu musíme definovat řetězec s mezerou na obou stranách řetězce.
Spustit tento dotaz:
Ve funkci TRIM jsme nezadali žádné znaky, které by se odstranily. Ve výstupu funkce SQL TRIM odstraní úvodní i koncový prostor.
Můžete si také všimnout rozdílu v délce řetězce před a po funkci TRIM.
- Velikost datového řetězce v bajtech pro původní řetězec: 24
- velikost datového řetězce v bajtech po SQL TRIM: 11
TRIM Úvodní znaky z řetězce:
V předchozím příkladu jsme prozkoumali, že SQL TRIM je nahrazením RTRIM a LTRIM a jeho eliminuje smazání všech mezer před a za řetězcem. Můžeme také odstranit znaky z řetězce pomocí TRIM. Předpokládejme, že chceme odstranit znak ON z řetězce, můžeme jej určit ve funkci TRIM podle následujícího skriptu.
Zkontroluje zadané znaky na přední i zadní straně a odstraní jednotlivé znaky. V řetězci Aplikace máme znak ON na přední straně. Na následujícím snímku obrazovky se můžete podívat na výstup po funkci TRIM.
- Velikost datového řetězce v bajtech pro původní řetězec: 11
- Velikost datového řetězce v bajtech po SQL TRIM: 9
Podívejme se ještě na jeden příklad. Tentokrát chceme odstranit znaky App z přední strany. Ve skriptu nemusíme provádět žádné změny. Můžeme určit znak, který se má odstranit pomocí SQL TRIM, a poskytne požadovaný výstup.
- Velikost datového řetězce v bajtech pro původní řetězec: 11
- Velikost datového řetězce v bajtech po SQL TRIM: 8
V předchozích příkladech jsme odstranili znak buď z předního konce, nebo z konce . Pokud máme znak na obou stranách, odstraní je také.
V následujícím příkladu chceme odstranit znak A, který je na obou stranách řetězce. Spusťte skript a odstraní zadané znaky z obou stran.
- Velikost datového řetězce v bajtech pro originál Řetězec: 12
- Velikost datového řetězce v bajtech po SQL TRIM: 10
Předpokládejme, že jsme zadali znak, který na řetězci není. V následujícím příkladu chceme odstranit znak A a C z předního nebo zadního konce. Nemáme znak C na obou stranách, takže jej neodstraní. Odstraní pouze znak A a poskytne výstup.
- Velikost datového řetězce v bajtech pro původní řetězec: 12
- velikost datového řetězce v bajtech po SQL TRIM: 10
TRIM pro záznamy v tabulce
V předchozím článku jsme použili proměnnou k definování řetězce a provedení operace SQL TRIM na něm. Obvykle vyžadujeme použití TRIM na záznamech tabulky. Použijme to v následujícím příkladu.
V následujících příkladech eliminoval znak R z řetězce na začátku a na konci.
Funkci SQL TRIM můžeme použít také v příkazu Update. Předpokládejme, že chceme aktualizovat všechny záznamy v tabulce Zaměstnanec a chceme odstranit Správce znaků z JobTitile.
Nezachází s manažerem jako s jedním slovem. Funkce oříznutí zkontroluje každý znak v řetězci a odstraní jej.
K oddělení každého znaku můžeme použít čárku (,) stejně.
Rovněž provádí stejnou práci a odstraňuje konkrétní znaky z řetězce na předním a koncovém konci.
Závěr
V tomto článku jsme prozkoumali funkci SQL TRIM se serverem SQL Server 2017 a vyšším. Také jsme se dozvěděli o funkcích TRIM LTRIM a RTRIM dostupných na nebo před SQL Server 2016.
V závislosti na verzi serveru SQL, kterou používáte, byste měli těmto funkcím porozumět a seznámit se s koncepty. Doufám, že vám tento článek bude užitečný. Neváhejte nám poskytnout zpětnou vazbu nebo se zeptat na komentáře níže.
- autor
- Poslední příspěvky
Je tvůrcem jedné z největších bezplatných online sbírek článků na jedno téma se svou 50dílnou sérií věnovanou skupinám dostupnosti na serveru SQL Server. Na základě svého přínosu pro komunitu SQL Server byl oceněn různými oceněními, včetně prestižního ocenění „Nejlepší autor roku“ průběžně v letech 2020 a 2021 na serveru SQLShack.
Raj vždy zajímá nové výzvy, takže pokud potřebujete poradit pomoc s jakýmkoli tématem obsaženým v jeho spisech, lze ho kontaktovat na adrese [email protected]
Zobrazit všechny příspěvky od Rajendra Gupta
- Provádění drobných a hlavních upgradů verzí pro AWS RDS SQL Server – 29. ledna 2021
- Nasazení instancí AWS RDS PostgreSQL – 27. ledna 2021
- Migrace místních databází SQL na AWS RDS SQL Server pomocí AWS DMS – 25. ledna , 2021