怎样在sql里面判断一个字符串是否可以转换为数字
^_^
谢谢大家
------解决方案--------------------ISNUMERIC()
------解决方案--------------------ISNUMERIC
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。
------解决方案--------------------ISNUMERIC
确定表达式是否为一个有效的数字类型。
语法
ISNUMERIC ( expression )
参数
expression
要计算的表达式。
返回类型
int
注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。
select ISNUMERIC(12245.2)
select ISNUMERIC( '啊啊 ')
-----
1
0
------解决方案--------------------declare @t table(name varchar(100))
insert @t(name)
select '123 '
union all
select '123.45 '
select * from @t where name not like '%[^1-9]% '
------解决方案--------------------可以使用 ISNUMERIC() 函数,但是需要过滤一些特殊的字符,比如 '$ '和 '. ':
select ISNUMERIC( '$ ')
union all
select ISNUMERIC( '. ')
------解决方案--------------------declare @t table(name varchar(100))
insert @t(name)
select '123 '
union all
select '123.45 '
select * from @t where isnumeric(name)=1
------解决方案--------------------ISNUMERIC
确定表达式是否为一个有效的数字类型。
语法
ISNUMERIC ( expression )
参数
expression
要计算的表达式。
返回类型
int
注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。
------解决方案--------------------declare @a int
declare @b varchar(10)
declare @c varchar(10)
set @a=1234
set @b= '1234 '
set @c= '1234aa '
select ISNUMERIC(@a)
select ISNUMERIC(@b)
select ISNUMERIC(@c)
-----
1
1
0