存储过程里面能用正则吗???

kevin_xu4365 2010-09-14 11:05:47
比如我想在存储过程里面,验证传进来的值是小数格式,不是则返回消息,能实现吗
...全文
180 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilniu 2010-09-14
  • 打赏
  • 举报
回复
目前T-SQL不支持正则,可以用通配符实现。

--验证传进来的值是小数格式
DECLARE @Input varchar(20)
SET @Input = '8.'
IF @Input LIKE '%.%'
AND @Input NOT LIKE '%.%.%'
AND REPLACE(@Input,'.','') NOT LIKE '%[^0-9]%'
BEGIN
--验证成功
SELECT CAST(@Input AS decimal(18,9))
END

cjzm83 2010-09-14
  • 打赏
  • 举报
回复
可以在存储过程里面用正则,要创建一个CLR函数
Mark杨 2010-09-14
  • 打赏
  • 举报
回复

declare @num nvarchar(20)
set @num = 'd'

select count(1) where isnumeric(@num) = 1 and charindex('.',@num) between 2 and len(@num) - 1

/*
返回0 不是小数
返回1 是小数
*/
obuntu 2010-09-14
  • 打赏
  • 举报
回复
在列上做check约束不是更好吗?
bancxc 2010-09-14
  • 打赏
  • 举报
回复
sffffff

34,837

社区成员

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

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