Pokud máte v databázové tabulce SQL Server sloupec, který obsahuje znaková data, ale některé řádky v těchto datech obsahují také čísla, můžete pomocí následující techniky vrátit pouze ty řádky, které neobsahují čísla.
Čísla mohou být reprezentována slovy a jinými symboly, ale pro účely tohoto článku „číslo“ znamená „číslice“. Takže nacházíme hodnoty, které neobsahují žádné číselné číslice.
Příklad
Předpokládejme, že máme sloupec s následujícími údaji:
SELECT ProductName
FROM Products;
Výsledek:
+-------------------------------------+ | ProductName | |-------------------------------------| | Left handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Straw Dog Box | | Bottomless Coffee Mugs (4 Pack) | | Right handed screwdriver | +-------------------------------------+
Tento sloupec obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech.
Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které není obsahovat čísla:
SELECT ProductName
FROM Products
WHERE ProductName NOT LIKE '%[0-9]%';
Výsledek:
+--------------------------+ | ProductName | |--------------------------| | Left handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | | Right handed screwdriver | +--------------------------+
Podle očekávání jsou vráceny pouze ty řádky, které neobsahují čísla.
Můžeme to snadno otočit a změnit NOT LIKE
LIKE
aby se vrátily pouze ty řádky, které dělají obsahovat čísla.