Понякога може да се наложи да търсите в таблица на база данни само за онези редове, които съдържат поне едно число в дадена колона.
Строго погледнато, числата могат да бъдат представени с думи и други символи, но за целите на тази статия „число“ означава „числова цифра“.
По-долу е даден пример за това как да използвате T-SQL за намиране на редове, които съдържат поне едно число в SQL Server.
Пример
Да предположим, че имаме таблица, наречена Products
със следните данни в неговия ProductName
колона:
SELECT ProductName
FROM Products;
Резултат:
+-------------------------------------+ | 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 | +-------------------------------------+
Тази колона очевидно съдържа данни за знаци, но някои редове съдържат числа в тези знакови данни (въпреки че не се съхраняват като числов тип).
Можем да използваме следната заявка, за да върнем само онези редове, които съдържат числа, представени с цифрови цифри:
SELECT ProductName
FROM Products
WHERE ProductName LIKE '%[0-9]%';
Резултат:
+-------------------------------------+ | ProductName | |-------------------------------------| | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Както се очаква, се връщат само онези редове, които съдържат числа.
Тази техника не се ограничава само до числа. Можете да промените тази заявка, за да включите други знаци, ако е необходимо. Всичко, което правим, е да посочим собствен модел за LIKE
оператор.