我正在尝试编写一个查询,它将选择仅包含整数数据的项目,例如:019280498而不是0129830INK。这些是产品数据库中的sku,我目前的解决方案是这样的:
列名称为 SKU
SELECT *
FROM mydb
WHERE SKU not like '%a%' or SKU not like '%b%' or SKU not like '%c%' ..... or SKU not like '%z%'
这只返回没有字符的值。然而,它不喜欢我所写的内容,我确信有一种更优雅的方式来执行它。
答案 0 :(得分:4)
将原始方法与like
一起使用,即可:
SELECT *
FROM mydb
WHERE SKU not like '%[^0-9]%';
这样做的好处是'3e9'
之类的表达式不被接受为数值。
或者,如果您要特别使用字母字符:
SELECT *
FROM mydb
WHERE SKU not like '%[a-z]%'; -- or for case sensitive collations '%[a-zA-Z]%'
答案 1 :(得分:3)
可以使用IsNumeric()函数。
Select *
from mydb
Where IsNumeric(sku) = 0x1
答案 2 :(得分:0)
SELECT DISTINCT Pincode
FROM ps_all_india_pin_code
WHERE Pincode between '100000' and '999999'