rengøring af Data med S .l-TRIM dit hvide rum

et hyppigt problem med at importere data til en database er uønsket hvidt rum i begyndelsen eller slutningen af strengene.ledende og efterfølgende hvidt rum kan forårsage problemer, når du forsøger at identificere duplikatposter, forsøge at tilslutte tabeller på strengkolonner eller blot søge efter en bestemt værdi.heldigvis fjerner s .l TRIM-funktionen det irriterende førende og efterfølgende hvide rum fra strenge.

hvidt rum er et tegn i en streng, der repræsenterer vandret eller lodret rum i typografi., Med andre ord: faner, linjefeeds, vognretur og ja mellemrum.

et hvidt rum har karakterværdi, ligesom ‘A’, ‘B’ og ‘C’ har en værdi. Vi kan bare ikke altid se hvidt rum, når det udskrives.

og ligesom ethvert andet tegn har et hvidt rum en decimalværdi i ASCII-tabellen. Denne lille kendsgerning er ganske praktisk, når du forsøger at identificere et hvidt rumkarakter ved hjælp af en s .l-kommando.,

The TRIM Function

Safari Books online has a nice snippet on the TRIM command:

ANSI SQL Standard Syntax

TRIM( FROM ]
target_string
)

The default for the first parameter, LEADING | TRAILING | BOTH , is ‘BOTH’.

The default for is a space char(32) .,

med andre ord, hvis du kun angiver target_string (den eneste krævede parameter), vil alle førende og efterfølgende mellemrum blive trimmet.

Eksempel

Accepter standard trim BÅDE indledende og afsluttende mellemrum:

SELECT ' Hello World ', 
TRIM(' Hello World ');+-----------------+-------------------------+
| Hello World | TRIM(' Hello World ') |
+-----------------+-------------------------+
| Hello World | Hello World |
+-----------------+-------------------------+

Bemærk: TRIM funktion til SQL Server versioner 2016 og nedre ikke have argumenter for at angive det tegn(s) til at TRIMME fra en streng. De trimmer kun førende / efterfølgende rumkarakterer.

eksempel

fjern kun førende stjerne (*) tegn., Bemærk, Selvom kun en ‘ * ‘ er angivet som parameteren, fjerner TRIM alle førende stjerner (*), uanset hvor mange der er.

SELECT '*** Hello World **',
TRIM(LEADING '*' FROM '*** Hello World **');+--------------------+---------------------------------------------+
| *** Hello World ** | TRIM(LEADING '*' FROM '*** Hello World **') |
+--------------------+---------------------------------------------+
| *** Hello World ** | Hello World ** |
+--------------------+---------------------------------------------+

et eksempel på En hvid plads scenarie

Forestil dig, at du ønsker at konvertere dine toy shop opgørelse optegnelser fra regneark til en RDBMS database. Du indlæser en databasetabel fra regnearket.,

du verificerer belastningen ved at sammenligne det originale regneark med nyt databasetabellen. Resultaterne ser rigtig godt ud.

Nu, du ønsker at finde ud af, hvor mange toy ænder, der nogensinde er blevet modtaget, så du søge i databasen:

SELECT toy_name, COUNT(*)
FROM toys
WHERE toy_name = 'duck'
GROUP BY toy_name;Empty set (0.00 sec)

Vent, hvad?! Det kan ikke være rigtigt, ingen poster returneres? Du kigger lige på LEGETØJSBORDET i databasen, du kan se de 11 poster med toy_name = ‘duck’.,

Så du kører denne handy lille SQL-sætning til at gøre, hvid kant:

For mere om ERSTAT-funktionen, skal du klikke her.

Ah ha! Nu kan du se alle toy_names har en førende plads, og nogle af dem har andre efterfølgende hvide rum tegn.,

Du kører en serie af OPDATERING sætninger ved hjælp af TRIM funktion for foranstillede og efterstillede blanke tegn: faner char(9), line-feeds char(10), transport-returnerer char(13) og rum char(32).,

Du kører på VÆLG igen for at gør, hvid kant, og pyha, de er alle gået:

Nu kan du tælle dine ænder med tillid:

SELECT toy_name, COUNT(*)
FROM toys
WHERE toy_name = 'duck'
GROUP BY toy_name;

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *