SQL,怎么判断一个字符串能不能转化成数值型呢。

HelpMeNow 2007-04-03 05:21:38
Table1有一个varchar(10) a1
记录如下:
张三
李四
300
五一
650
怎么只取出300和650的两条记录呢。
...全文
645 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2007-04-04
  • 打赏
  • 举报
回复
isnumeric(name)--不能排除(.,)
举个列子:
declare @ta table( name varchar(20))
insert @ta select '张三'
insert @ta select '李四1'
insert @ta select '30,0'
insert @ta select '五一'
insert @ta select '65.0'

select * from @ta where isnumeric(name)=1 --不能排除(.,)
name
--------------------
30,0
65.0

(2 行受影响)
believe209 2007-04-04
  • 打赏
  • 举报
回复
一楼正解
csuwm_shepherd 2007-04-04
  • 打赏
  • 举报
回复
一楼正解
中国风 2007-04-04
  • 打赏
  • 举报
回复
declare @ta table( name varchar(20))
insert @ta select '张三'
insert @ta select '李四1'
insert @ta select '300'
insert @ta select '五一'
insert @ta select '650'

select * from @ta where name not like '%[^0-9]%'

name
--------------------
300
650

(2 行受影响)

---涛声依旧--- 2007-04-04
  • 打赏
  • 举报
回复
樓上正解
paoluo 2007-04-04
  • 打赏
  • 举报
回复
...

我太失敗了。
wangdehao 2007-04-04
  • 打赏
  • 举报
回复
0.33能转化成数值型,但通过那种方式就给排除掉了
wangdehao 2007-04-04
  • 打赏
  • 举报
回复
roy_88的也有问题的,0.33是数字,但通过那种方式就给排除掉了
paoluo 2007-04-04
  • 打赏
  • 举报
回复
如果樓主的數據沒有那麼多符號,只是單純的漢字或數字,就用我寫的IsNumeric那個,否則就用roy_88(中国风_燃烧你的激情!!!) 的吧
onlyonereason 2007-04-04
  • 打赏
  • 举报
回复
学习 知道了isnumeric
gahade 2007-04-04
  • 打赏
  • 举报
回复
同意楼上的,isnumeric的确对有些字符不敏感,如果isnumeric返回1,但实际参与算术运算的时候可能会出错.

declare @t table(strs varchar(20))
insert into @t
select '123'
union select 'aaa'
union select '+'
union select '-'
union select '.'
union select ','
union select '+.'
union select '-.'
union select '+,'
union select '-,'

select * from @t where IsNumeric(strs) = 1

strs
--------------------
-
,
-,
.
-.
+
+,
+.
123

(所影响的行数为 9 行)
paoluo 2007-04-03
  • 打赏
  • 举报
回复
Select * From Table1 Where IsNumeric(a1) = 1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧