Как обрезать строку в MS SQL старше, чем SQL Server 2017? - PullRequest
115 голосов
/ 07 октября 2008

В SQL Server 2017 вы можете использовать этот синтаксис, но не в более ранних версиях:

SELECT TRIM(Names) FROM Customer;

Ответы [ 6 ]

211 голосов
/ 07 октября 2008
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
58 голосов
/ 07 октября 2008

Для обрезки справа используйте:

SELECT RTRIM(Names) FROM Customer

Чтобы обрезать слева, используйте:

SELECT LTRIM(Names) FROM Customer

Чтобы обрезать с обеих сторон, используйте:

SELECT LTRIM(RTRIM(Names)) FROM Customer
7 голосов
/ 08 октября 2008

Я предполагаю, что это одноразовое упражнение по очистке данных. Сделав это, убедитесь, что вы добавили ограничения базы данных для предотвращения неверных данных в будущем, например,

ALTER TABLE Customer ADD
   CONSTRAINT customer_names__whitespace
      CHECK (
             Names NOT LIKE ' %'
             AND Names NOT LIKE '% '
             AND Names NOT LIKE '%  %'
            );

Также рассмотрите возможность запрета других символов (табуляция, возврат каретки, перевод строки и т. Д.), Которые могут вызвать проблемы.

Может также быть хорошим временем разделить эти имена на family_name, first_name и т. Д.)

4 голосов
/ 07 июля 2014
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author
1 голос
/ 21 июня 2011

в sql server 2008 r2 с выражением ssis у нас есть функция обрезки.

Службы интеграции SQL Server (SSIS) - это компонент программного обеспечения базы данных Microsoft SQL Server, который можно использовать для выполнения широкого спектра задач миграции данных.

Вы можете найти полное описание по этой ссылке

http://msdn.microsoft.com/en-us/library/ms139947.aspx

но эта функция сама по себе имеет некоторые ограничения, которые также упоминаются msdn на этой странице. но это в sql server 2008 r2

TRIM("   New York   ") .The return result is "New York".
0 голосов
/ 18 января 2019

Расширенная версия «ЗАМЕНА»:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...