Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅选择包含字符的列中的整数数据_Sql_Sql Server 2008_Tsql - Fatal编程技术网

Sql 仅选择包含字符的列中的整数数据

Sql 仅选择包含字符的列中的整数数据,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我正在尝试编写一个查询,该查询将选择只有整数数据的项,例如: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%' 这将只返回不包含字符的值。但是它不喜欢我写的东西,我相信有一种更优雅的方法来执行它。可以

我正在尝试编写一个查询,该查询将选择只有整数数据的项,例如: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%'
这将只返回不包含字符的值。但是它不喜欢我写的东西,我相信有一种更优雅的方法来执行它。

可以使用IsNumeric()函数

Select *
from mydb
Where IsNumeric(sku) = 0x1

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

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]%'

您的SQL版本是否支持正则表达式?是的,我犯了一个错误,它是Server 2008而不是2012。更新了标题。@ZachM。您应该知道,对于某些字符,
ISNUMERIC
将返回true,如
E
。测试
选择ISNUMERIC('01234.6E10')
例如+1。这考虑到了这样一个事实,
ISNUMERIC
允许的不仅仅是数字,您可以通过突出显示代码并按Ctrl+K来格式化代码吗
SELECT DISTINCT Pincode 
FROM ps_all_india_pin_code 
WHERE Pincode between '100000' and '999999'