判断是否位数字

banping 2006-12-08 11:39:36
我有一个字段是varchar类型.
我现在想要取出所有该字段为0-9组成的的记录,删除不是0-9组成的记录.
...全文
408 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2006-12-08
  • 打赏
  • 举报
回复
非数字:isnumeric(字段)=0
数字:isnumeric(字段)=1
xiaoku 2006-12-08
  • 打赏
  • 举报
回复
--删:
delete from tablename where isnumeric(columnname) = 0 or columnname like '%.%' --or
leo_lesley 2006-12-08
  • 打赏
  • 举报
回复
--取:
select * from tablename where isnumeric(columnname) = 1 and charindex('.',columnname) = 0

--删:
delete from tablename where isnumeric(columnname) = 0 and charindex('.',columnname) > 0
b1688890284 2006-12-08
  • 打赏
  • 举报
回复
要用到循環吧?
banping 2006-12-08
  • 打赏
  • 举报
回复
不行,我要的是整数,如果有小数也要删除的.
leo_lesley 2006-12-08
  • 打赏
  • 举报
回复
ISNUMERIC
冷箫轻笛 2006-12-08
  • 打赏
  • 举报
回复
--取:
select * from tablename where isnumeric(columnname) = 1

--删:
delete from tablename where isnumeric(columnname) = 0
marco08 2006-12-08
  • 打赏
  • 举报
回复
ISNUMERIC
确定表达式是否为一个有效的数字类型。
bugchen888 2006-12-08
  • 打赏
  • 举报
回复
isnumeric不能满足这个需求。要用PATINDEX。
----------------------------------------------------
SELECT PATINDEX('%[^0-9]%','123')
, PATINDEX('%[^0-9]%','123.25')
, PATINDEX('%[^0-9]%','12AB3')

----------- ----------- -----------
0 4 3

(1 row(s) affected)

返回值大于零的都表示含有非0-9的字符。

34,593

社区成员

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

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