Někdy může být potřeba hledat v databázové tabulce pouze ty řádky, které obsahují alespoň jedno číslo v daném sloupci.
Přísně vzato, čísla mohou být reprezentována slovy a jinými symboly, ale pro účely tohoto článku „číslo“ znamená „numerickou číslici“.
Níže je uveden příklad, jak použít T-SQL k nalezení řádků, které obsahují alespoň jedno číslo v SQL Server.
Příklad
Předpokládejme, že máme tabulku nazvanou Products
s následujícími údaji ve svém ProductName
sloupec:
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 samozřejmě obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech (i když nejsou uloženy jako číselný typ).
Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které obsahují čísla reprezentovaná numerickými číslicemi:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Výsledek:
+-------------------------------------+ | ProductName | |-------------------------------------| | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Podle očekávání jsou vráceny pouze ty řádky, které obsahují čísla.
Tato technika není omezena pouze na čísla. V případě potřeby můžete tento dotaz upravit tak, aby obsahoval další znaky. Vše, co děláme, je specifikovat vlastní vzor pro LIKE
operátor.