Čištění Dat s SQL – TRIM Vaše Bílé Místo

častým problémem při importu dat do databáze je nežádoucí bílý prostor na začátku nebo na konci řetězce.

vedoucí a koncový bílý prostor může způsobit problémy při pokusu o identifikaci duplicitních záznamů, pokus o připojení tabulek na sloupcích řetězců nebo jednoduše dotaz na určitou hodnotu.

naštěstí funkce SQL TRIM odstraní tento otravný vedoucí a koncový bílý prostor z řetězců.

bílý prostor je znak v řetězci, který představuje horizontální nebo vertikální prostor v typografii., Jinými slovy: karty, linkové kanály, vrácení vozíku a ano mezery.

bílý prostor má hodnotu znaku, stejně jako „A“, “ B “ A “ C “ mají hodnotu. Jen nemůžeme vždy vidět bílý prostor při tisku.

a stejně jako jakýkoli jiný znak má bílé místo v tabulce ASCII desetinnou hodnotu. Tato malá skutečnost se hodí, když se snažíte identifikovat znak bílého prostoru pomocí příkazu SQL.,

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

jinými slovy, pokud zadáte pouze target_string (jediný povinný parametr), všechny úvodní a koncové mezery se ořízne.

Příklad:

Přijmout výchozí nastavení trim úvodní a koncové mezery:

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

Poznámka: funkce TRIM pro SQL Server verze 2016 a nižší nemají argumenty určující znak(y) ČALOUNĚNÍ z řetězce. Ořezávají pouze přední / koncové znaky prostoru.

příklad

odstraňte pouze hlavní znaky hvězdičky ( * )., Všimněte si, že i když je jako parametr zadán pouze jeden’*‘, TRIM odstraní všechny přední hvězdičky ( * ), bez ohledu na to, kolik jich je.

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

příklad white space scénář

Představte si, že chcete převést vaše hračkářství zásob záznamy z tabulek RDBMS databáze. Úspěšně načtete databázovou tabulku z rozloženého listu.,

zatížení ověřujete porovnáním původní tabulky s novou databázovou tabulkou. Výsledky vypadají opravdu dobře.

Nyní chcete zjistit, kolik hračky kachny, kdy byla přijata, takže můžete zadat dotaz do databáze:

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

Počkejte, co?! To nemůže být pravda, žádné záznamy nejsou vráceny? Díváte se přímo na tabulku hraček v databázi, můžete vidět 11 záznamů s toy_name = ‚duck‘.,

Takže jste se spustit tento šikovný malý SQL příkaz, aby se bílá místa viditelné:

Pro více informací o nahrazování funkce, klikněte zde.

ah ha! Nyní můžete vidět, že všechny názvy toy_names mají vedoucí prostor a některé z nich mají jiné znaky bílého prostoru.,

spustit sérii příkazy UPDATE pomocí funkce TRIM pro úvodní a koncové bílé znaky: záložky char(9), line-kanály char(10), přepravy, vrátí char(13) a mezery char(32).,

spuštění VYBERTE znovu dělá bílé místo viditelné a, uf, všichni jsou pryč:

Nyní můžete počítat své kachny s důvěrou:

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *