Puhdistus Tiedot SQL – LEIKATA Valkoinen Tila

usein ongelma tiedon tuonti tietokanta on ei-toivottuja valkoista tilaa alussa tai lopussa jouset.

Johtava ja perään valkoinen tila voi aiheuttaa ongelmia, kun yrität tunnistaa kahdentuneet, yrittää LIITTYÄ taulukoita merkkijono sarakkeet, tai yksinkertaisesti kyselyn tietyn arvon.

onneksi SQL TRIM-toiminto poistaa sen ärsyttävän johtamisen ja valkoisen tilan merkkijonoista.

valkoinen avaruus on merkkijono, joka edustaa vaakaa tai pystysuoraa tilaa typografiassa., Toisin sanoen: välilehdet, viivasyötteet, kuljetus palauttaa ja, kyllä, välilyöntejä.

valkoisella avaruudella on merkkiarvo, aivan kuten ”A”: lla, ”B”: llä ja ”C”: llä on arvo. Valkoista tilaa ei aina näe painettuna.

ja aivan kuten millä tahansa muullakin merkillä, valkoisella avaruudella on ASCII-taulukossa desimaaliarvo. Tämä pieni tosiasia on varsin kätevä, kun yrität tunnistaa valkoisen avaruuden merkin SQL-komennolla.,

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) .,

Toisin sanoen, jos määrität vain target_string (ainoa pakollinen parametri), kaikki johtava ja välilyönnit on leikattu.

Esimerkki

Hyväksy oletusarvot leikata SEKÄ johtava ja perään merkkiä tilaa:

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

Huomautus: TRIM-toiminto SQL Server-versiot 2016 ja alempi ei ole perusteluja täsmennetään merkki(s) LEIKATA merkkijono. Ne vain leikata johtava/perään tilaa merkkiä.

Example

Remove only LEADING asterisk (*) characters., Huomaa, että vaikka vain yksi ’*’ on määritelty parametri, TRIM poistaa kaikki johtavat tähdellä (*), riippumatta siitä, kuinka monta niitä on.

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

esimerkki white-space-skenaario

Kuvittele, että haluat muuntaa lelukauppa varaston tietueita taulukoita on RDBMS tietokantaan. Voit ladata tietokantataulukon levitetystä arkista.,

varmistat kuormituksen vertaamalla alkuperäistä taulukkolaskentaa uuteen tietokantataulukkoon. Tulokset näyttävät todella hyviltä.

Nyt haluat selvittää, kuinka monta lelu ankkoja on koskaan ollut saanut, joten kyselyn tietokantaan:

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

Odota, mitä?! Eikö tietoja palauteta? Katsot suoraan tietokannan LELUPÖYTÄÄ, näet 11 kirjaa, joissa on toy_name = ”duck”.,

Joten sinulla on tämä kätevä SQL tehdä valkoinen tila näkyvissä:

Lisätietoja KORVAA-toiminto, klikkaa tästä.

Ah ha! Nyt voit nähdä kaikki toy_names on johtava tila, ja jotkut niistä on muita perään valkoinen tilaa merkkiä.,

suorita useita UPDATE lausuntoja käyttäen TRIM-toiminto johtava ja perään white space-merkit: välilehdet char(9) -, linja-syötteet char(10) -, kuljetus-palautus char(13), ja tilat char(32).,

suorita VALITSE uudelleen tekee valkoinen tila näkyvissä, ja huh huh, ne ovat kaikki poissa:

Nyt voit laskea oman ankat varmuudella:

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *