0

我正在尝试编写一个查询,它将选择仅包含整数数据的项目,例如: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%'

这只会返回没有字符的值。但是它不喜欢我写的东西,我相信有一种更优雅的方式来执行它。

4

3 回答 3

4

使用您的原始方法like,您可以执行以下操作:

SELECT *
FROM mydb
WHERE SKU not like '%[^0-9]%';

这样做的好处是表达式 like'3e9'不被接受为数值。

或者,如果是您想要排除的特定字母字符:

SELECT *
FROM mydb
WHERE SKU not like '%[a-z]%';  -- or for case sensitive collations '%[a-zA-Z]%'
于 2013-08-12T15:24:07.953 回答
3

有一个可以使用的 IsNumeric() 函数。

Select *
from mydb
Where IsNumeric(sku) = 0x1
于 2013-08-12T15:08:34.607 回答
0
SELECT DISTINCT Pincode 
FROM ps_all_india_pin_code 
WHERE Pincode between '100000' and '999999'
于 2017-10-12T06:58:52.580 回答