Hoe een tekenreeks in SQL Server inkorten vóór 2017?

In SQL Server 2017 kunt u deze syntaxis gebruiken, maar niet in eerdere versies:

SELECT Name = TRIM(Name) FROM dbo.Customer;

Antwoord 1, Autoriteit 100%

SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer

Antwoord 2, Autoriteit 25%

Gebruik:

SELECT RTRIM(Names) FROM Customer

Gebruik:

SELECT LTRIM(Names) FROM Customer

Gebruik:

SELECT LTRIM(RTRIM(Names)) FROM Customer

Antwoord 3, Autoriteit 3%

Ik neem aan dat dit een eenmalige data-scrubbing-oefening is. Eén keer gedaan, zorg ervoor dat u databasebeperkingen toevoegt om slechte gegevens in de toekomst te voorkomen, b.v.

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

Overweeg ook om andere tekens (tab, koets, lijntoevoer, enz.) Die, enz.) Die problemen kan veroorzaken.

Het kan ook een goed moment zijn om die namen in te splitsen in family_name, first_name, enz. 🙂


Antwoord 4, Autoriteit 2%

SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author

Antwoord 5

in sql server 2008 r2 met ssis-expressie hebben we de trimfunctie .

SQL Server Integration Services (SSIS) is een onderdeel van de Microsoft SQL Server-databasesoftware die kan worden gebruikt om een breed scala aan gegevensmigratietaken uit te voeren.

je kunt de volledige beschrijving vinden op deze link

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

maar deze functie heeft op zichzelf enige beperking die ook door msdn op die pagina wordt vermeld.
maar dit is in sql server 2008 r2

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

Antwoord 6

Uitgebreide versie van “REPLACE”:

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

Antwoord 7

Als u een reeks tekens vanaf het begin en einde van een tekenreeks wilt inkorten, kunt u de volgende code gebruiken waarbij @TrimPattern de tekens definieert die moeten worden bijgesneden. In dit voorbeeld worden de spatie-, tab-, LF- en CR-tekens bijgesneden:

Verklaar @Test nvarchar(50) = Concat (‘ ‘, char(9), char(13), char(10), ‘ ‘, ‘TEST’, ‘ ‘, char(9), char(10) , char(13),’ ‘, ‘Test’, ‘ ‘, char (9), ‘ ‘, char (9), char(13), ‘ ‘)

DECLARE @TrimPattern nvarchar(max) = ‘%[^ ‘ + char(9) + char(13) + char(10) +’]%’

SELECTEER SUBSTRING(@Test, PATINDEX(@TrimPattern, @Test), LEN(@Test) – PATINDEX(@TrimPattern, @Test) – PATINDEX(@TrimPattern, LTRIM(REVERSE(@Test))) + 2)

Other episodes