SQL Server 2016 nebo starší verze nemá přímou funkci manipulace s řetězci k oříznutí úvodních i koncových nežádoucích mezer. Existuje řešení, jak použít LTRIM k odebrání úvodního prostoru a RTRIM k samostatnému odstranění koncového prostoru. Dobrou zprávou je, že integrovaná funkce TRIM je zavedena ve verzi serveru SQL Server 2017 spolu s dalšími řetězcovými funkcemi, jako jsou translate () a concat_ws (). Tato nová funkce odstraní mezery na obou stranách řetězce v jedné operaci a vyčistí váš kód.
TRIM () v SQL Server 2017 a vyšší
Funkce TRIM () je představeno na serveru SQL Server 2017. Ve všech předchozích verzích máme pouze LTRIM () k odstranění úvodních mezer z řetězce a RTRIM () k odstranění koncových mezer. Nově zavedenou funkci lze použít k jednorázovému odstranění nežádoucích mezer na začátku a na konci řetězce. Lze jej také použít k odstranění jiných znaků než mezer od začátku a konce řetězce.
Použití integrované funkce TRIM
Syntaxe trimu je TRIM (řetězec) . Pokud pouze provádíte řetězec bez použití znaků FROM, ořízne se mezery na obou stranách řetězce. Používáte-li „Znaky“ OD, bude vyhledávat konkrétní znaky na začátku a na konci řetězce a odebere je.
Příklad Pouze pro ořezávání prostoru
SELECT TRIM(" My Tec Bits ")/* Result */"My Tec Bits"
Příklad pro ořezávání znaků
SELECT TRIM( ".! " FROM "@ My Tec Bits !..") AS Result;/* Result */"@ My Tec Bits"
TRIM ekvivalent na serveru SQL Server 2016 do roku 2005
Na serveru SQL Server 2016 a nižší verze, pokud se pokusíte použít funkci TRIM, zobrazí se chyba s uvedením, že TRIM není rozpoznaný název vestavěné funkce. Takže ve starších verzích serveru SQL Server je ekvivalentem vestavěné funkce společné používání LTRIM a RTRIM jako LTRIM (RTRIM („String“)). Pokud si myslíte, že tato technika způsobí, že kód bude vypadat ošklivě, můžete tuto metodu uzavřít do UDF a použít ji takto:
TRIM Equivalent v SQL Server 2000
Ve verzi 2000 SQL Server také můžete použít LTRIM a RTRIM společně k dosažení funkčnosti obou bočních ořezávání. Pokud jste nakloněni k vytvoření UDF, dojde k malé změně oproti UDF, který jsme vytvořili dříve. SQL Server 2000 nemá datový typ Varchar (Max). Místo toho tedy musíme použít datový typ Varchar (8000). UDF bude vypadat takto: