adatok tisztítása az SQL-vel-vágja le a fehér helyet

az adatok adatbázisba történő importálásának gyakori problémája a nem kívánt fehér tér a karakterláncok elején vagy végén.

a vezető és a hátsó fehér tér problémákat okozhat, amikor megpróbálja azonosítani a duplikált rekordokat, megpróbál csatlakozni a táblázatokhoz a karakterlánc oszlopokon, vagy egyszerűen lekérdezi egy adott értéket.

szerencsére, az SQL TRIM funkció eltávolítja a bosszantó vezető és záró fehér tér húrok.

A fehér tér egy karakterláncban, amely vízszintes vagy függőleges helyet képvisel a tipográfiában., Más szavakkal: lapok, vonalcsatornák, kocsi visszatér, igen, terek.

egy fehér tér karakterértékkel rendelkezik, csakúgy, mint az “A”, ” B ” és ” C ” értéke. Csak nem mindig látjuk a fehér helyet nyomtatáskor.

és mint bármely más karakter, a fehér tér tizedes értékkel rendelkezik az ASCII táblázatban. Ez a kis tény nagyon hasznos, ha SQL paranccsal próbál azonosítani egy fehér űr karaktert.,

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

más szóval, ha csak a target_string (az egyetlen szükséges paraméter) értéket adja meg, akkor az összes vezető és záró szóköz kivágásra kerül.

Példa

Fogadja el az alapértelmezett trim MIND a vezető, illetve záró tér karaktereket:

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

Megjegyzés: A TRIM funkció az SQL Server verzió 2016 alacsonyabb, nem érvek, amelyben meghatározza a karakter(ek) a BERENDEZÉS egy string. Ezek csak vágja vezető / záró tér karakter.

példa

csak a vezető csillag (*) Karakterek eltávolítása., Megjegyzés: annak ellenére, hogy csak egy ‘*’ van megadva paraméterként, a TRIM eltávolítja az összes vezető csillagot ( * ), függetlenül attól, hogy hány van.

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

Egy példa a fehér tér forgatókönyv

Képzelje el, hogy akar-hoz megtérít a játékbolt leltár szerint a táblázatok egy relációs adatbázis kezelővel adatbázis. Sikeresen betölteni egy adatbázis tábla a spread sheet.,

a terhelést úgy ellenőrizheti, hogy összehasonlítja az eredeti táblázatot az új adatbázis táblával. Az eredmények nagyon jól néznek ki.

Meg akarja tudni, hogy hány játék kacsa valaha is kapott, így az adatbázis lekérdezés:

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

Várj, mi?! Ez nem lehet igaz,nincs visszaút? Az adatbázisban található JÁTÉKASZTALRA néz, a toy_name = ‘kacsa’11 rekordját láthatja.,

Így fut ez a praktikus kis SQL, hogy a fehér térben látható:

További CSERÉLJE ki a funkciót, kattintson ide.

Ah ha! Most már láthatja, hogy az összes toy_names-nek van egy vezető helye, néhányuknak pedig más hátsó fehér tér karakterei vannak.,

frissítési utasítások sorozatát futtatja a TRIM funkció segítségével a vezető és záró fehér tér karakterekhez: tabs char(9), line-feeds char(10), carriage-returns char(13), and spaces char(32) / div>.,

fut a VÁLASSZUK ismét a lehetőséget, hogy teszi a fehér térben látható, s átélni, mind elmentek:

Most lehet számítani a kacsák bizalommal:

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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük