W programie SQL Server 2017 można używać tej składni, ale nie we wcześniejszych wersjach:
SELECT Name = TRIM(Name) FROM dbo.Customer;
sql
sql-server
trim
Eric Labashosky
źródło
źródło
Aby przyciąć po prawej stronie, użyj:
SELECT RTRIM(Names) FROM Customer
Aby przyciąć po lewej stronie, użyj:
SELECT LTRIM(Names) FROM Customer
Aby przyciąć po obu stronach, użyj:
SELECT LTRIM(RTRIM(Names)) FROM Customer
źródło
Zakładam, że jest to jednorazowe czyszczenie danych. Po zakończeniu upewnij się, że dodałeś ograniczenia bazy danych, aby zapobiec nieprawidłowym danym w przyszłości, np
ALTER TABLE Customer ADD CONSTRAINT customer_names__whitespace CHECK ( Names NOT LIKE ' %' AND Names NOT LIKE '% ' AND Names NOT LIKE '% %' );
Rozważ także zablokowanie innych znaków (tabulatora, powrotu karetki, nowego wiersza itp.), Które mogą powodować problemy.
Może to być również dobry moment, aby podzielić te nazwy się
family_name
,first_name
itp :)źródło
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' '))) from author
źródło
w SQL Server 2008 R2 z wyrażeniem ssis mamy funkcję trim.
SQL Server Integration Services (SSIS) to składnik oprogramowania bazy danych Microsoft SQL Server, którego można używać do wykonywania szerokiego zakresu zadań migracji danych.
pełny opis można znaleźć pod tym linkiem
http://msdn.microsoft.com/en-us/library/ms139947.aspx
ale ta funkcja sama w sobie ma pewne ograniczenia, o których również wspomina msdn na tej stronie. ale to jest w SQL Server 2008 R2
źródło
Rozszerzona wersja „REPLACE”:
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
źródło
Aby przyciąć dowolny zestaw znaków od początku i końca ciągu, możesz wykonać następujący kod, w którym @TrimPattern definiuje znaki do przycięcia. W tym przykładzie przycinane są znaki spacji, tabulacji, LF i CR:
Zadeklaruj @Test nvarchar (50) = Concat ('', char (9), char (13), char (10), '', 'TEST', '', char (9), char (10), char ( 13), '', 'Test', '', znak (9), '', znak (9), znak (13), '')
ZADEKLARUJ @TrimPattern nvarchar (max) = '% [^' + char (9) + char (13) + char (10) + ']%'
WYBIERZ SUBSTRING (@Test, PATINDEX (@TrimPattern, @Test), LEN (@Test) - PATINDEX (@TrimPattern, @Test) - PATINDEX (@TrimPattern, LTRIM (REVERSE (@Test))) + 2)
źródło