You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS SQL Server中使用LIKE运算符验证数字值的问题

解决办法:用正则表达式精准匹配合法数值

LIKE运算符的通配符(%、_)没法精准控制小数点数量、符号位置这类规则,改用正则表达式能直接满足你的筛选需求。

核心匹配规则

我们需要匹配的是:可选负号开头,后面跟整数,最多带一组小数部分(小数点+数字),对应的正则表达式为:^-?\d+(\.\d+)?$
拆分规则:

  • ^:匹配字符串开头,确保没有前置非法字符(比如$、#)
  • -?:允许0个或1个负号
  • \d+:至少1个数字(整数部分)
  • (\.\d+)?:可选的小数部分,要求是小数点+至少1个数字,且最多出现1次
  • $:匹配字符串结尾,确保没有后置非法字符(比如-)

不同数据库的实现示例

MySQL/MariaDB

使用REGEXP关键字:

SELECT your_column
FROM your_table
WHERE your_column REGEXP '^-?[0-9]+(\.[0-9]+)?$';

PostgreSQL

使用~运算符:

SELECT your_column
FROM your_table
WHERE your_column ~ '^-?\d+(\.\d+)?$';

SQL Server

使用PATINDEX函数:

SELECT your_column
FROM your_table
WHERE PATINDEX('^-?[0-9]%(\.[0-9]+)?$', your_column) = 1;

验证效果

针对你给出的测试值,这个正则会精准筛选出:99、-99、99.99、-99.99,自动排除带特殊符号、多小数点、首尾非法字符的数值。

内容的提问来源于stack exchange,提问作者Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:17:06