it-swarm.com.de

Wie schneidet man eine Zeichenfolge in MS SQL ab, die älter ist als SQL Server 2017?

In SQL Server 2017 können Sie diese Syntax verwenden, jedoch nicht in früheren Versionen:

SELECT TRIM(Names) FROM Customer;
108
Eric Labashosky
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
204
Ben Hoffstein

Um rechts zu trimmen, verwenden Sie:

SELECT RTRIM(Names) FROM Customer

Zum Zuschneiden auf der linken Seite verwenden Sie:

SELECT LTRIM(Names) FROM Customer

Verwenden Sie zum Beschneiden auf beiden Seiten:

SELECT LTRIM(RTRIM(Names)) FROM Customer
57
Kibbee

Ich gehe davon aus, dass dies eine einmalige Datenbereinigung ist. Stellen Sie anschließend sicher, dass Sie Datenbankeinschränkungen hinzufügen, um künftig fehlerhafte Daten zu verhindern, z. 

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

Erwägen Sie auch, andere Zeichen (Register, Wagenrücklauf, Zeilenvorschub usw.), die Probleme verursachen können, nicht zuzulassen. 

Es kann auch ein guter Zeitpunkt sein, diese Namen in family_name, first_name usw. aufzuteilen. :)

7
onedaywhen
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author
4
razon

in SQL Server 2008 R2 mit SSIS-Ausdruck haben wir die Trimmfunktion.

SQL Server Integration Services (SSIS) ist eine Komponente der Microsoft SQL Server-Datenbanksoftware, mit der eine Vielzahl von Datenmigrationsaufgaben ausgeführt werden kann.

die vollständige Beschreibung finden Sie auf diesem Link

http://msdn.Microsoft.com/de-de/library/ms139947.aspx

diese Funktion hat jedoch einige Einschränkungen, die auch von Msdn auf dieser Seite erwähnt werden. Dies ist jedoch in sql server 2008 r2 

TRIM("   New York   ") .The return result is "New York".
1

Erweiterte Version von "REPLACE":

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
0