日期:2014-05-19  浏览次数:20711 次

判断字段内容是否数值
比如字段里面是 'L ',那么它就不是数值,如果是 '123.1 '那么为数值,现在我用cast(字段   as   float)来判断,但是会提示错误,有没有内建的函数判断它是数值型的???

附错误:
将数据类型   varchar   转换为   float   时出错。

------解决方案--------------------
isnumeric()

返回0不是數字,1是數字
------解决方案--------------------
isnumeric函数判断
------解决方案--------------------
IsNumeric
------解决方案--------------------
用isnumeric()来判断,注意过滤空字符串以及 ". "等特殊字符。
------解决方案--------------------
ISNUMERIC
決定運算式是否為有效的數值型別。

語法
ISNUMERIC ( expression )

引數
expression

是要驗算的運算式。

傳回型別
int

備註
當輸入運算式驗算為有效整數、浮點數字、money 或 decimal 型別時,ISNUMERIC 會傳回 1,否則會傳回 0。傳回值為 1 確保 expression 可被轉換成這些數值型別之一。

------解决方案--------------------
我的回貼時間比樓主發貼時間還早?
------解决方案--------------------
Select IsNumeric( 'L ') --0
Select IsNumeric( '12356 ') --1
------解决方案--------------------
用ISNUMERIC 函数判断
case when ISNUMERIC(字段)=1 then '数字 ' else '字符 ' end

------解决方案--------------------
這樓蓋得真快...
------解决方案--------------------
echiynn(寶琲) ( ) 信誉:100 2007-07-16 16:27:35 得分: 0


我的回貼時間比樓主發貼時間還早?


---------
前面四個都是
------解决方案--------------------
这么多人啊.
------解决方案--------------------
select 数值=case when isnumeric(字段)=1 then 字段 end,
非数值=case when isnumeric(字段)=0 then 字段 end
from 表
------解决方案--------------------
回复人:paoluo(一天到晚游泳的鱼) ( 四星(高级)) 信誉:100 2007-07-16 16:28:26 得分:0
?
echiynn(寶琲) ( ) 信誉:100 2007-07-16 16:27:35 得分: 0


我的回貼時間比樓主發貼時間還早?


---------
前面四個都是
---------
都应该去买彩票,或者散分.
------解决方案--------------------
select * from table1 where isnumeric(field1)=1
------解决方案--------------------
...

這時間怎麼搞的
------解决方案--------------------
前面的每人给一分,其余的全部给我。
------解决方案--------------------
给分
------解决方案--------------------
isnumeric(数据)=0 --不是数字类型
isnumeric(数据)=1 --数字类型
------解决方案--------------------
给分就是```具体看帮助```
------解决方案--------------------
ISNUMERIC ( expression )