У SQL Server 2017 ви можете використовувати цей синтаксис, але не в попередніх версіях:
SELECT Name = TRIM(Name) FROM dbo.Customer;
У SQL Server 2017 ви можете використовувати цей синтаксис, але не в попередніх версіях:
SELECT Name = TRIM(Name) FROM dbo.Customer;
Відповіді:
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
Щоб обрізати праворуч, використовуйте:
SELECT RTRIM(Names) FROM Customer
Щоб обрізати зліва, використовуйте:
SELECT LTRIM(Names) FROM Customer
Для обрізки з обох сторін використовуйте:
SELECT LTRIM(RTRIM(Names)) FROM Customer
Я припускаю, що це разове вправляння даних. Закінчивши, переконайтеся, що ви додаєте обмеження в базу даних, щоб у майбутньому не допустити поганих даних
ALTER TABLE Customer ADD
CONSTRAINT customer_names__whitespace
CHECK (
Names NOT LIKE ' %'
AND Names NOT LIKE '% '
AND Names NOT LIKE '% %'
);
Також слід врахувати заборону інших символів (вкладку, повернення каретки, стрічку рядків тощо), що може спричинити проблеми.
Він також може бути гарний час , щоб розділити ці імена в family_name
, first_name
і т.д. :)
у сервері sql 2008 r2 з виразом ssis ми маємо функцію обрізки.
Служби інтеграції SQL Server (SSIS) - це компонент програмного забезпечення бази даних Microsoft SQL Server, який може бути використаний для виконання широкого кола завдань з міграції даних.
Ви можете знайти повний опис за цим посиланням
http://msdn.microsoft.com/en-us/library/ms139947.aspx
але ця функція сама по собі має обмеження, які також згадує msdn на цій сторінці. але це в sql сервері 2008 r2
TRIM(" New York ") .The return result is "New York".
Розширена версія "ЗАМІНИ":
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]