我必须验证数据是否包含数字,如果不是数字,则返回0,如果是数字或空,则返回1。
下面是我在SQL中尝试过的查询。
SELECT dbo.Regex('^[0-9]','123') --返回1。
SELECT dbo.Regex('^[0-9]','') --这不是返回1,但我想返回为1,并且我尝试在"pattern“中放入空格,它也不起作用……
有没有人能帮上忙...
提前感谢
发布于 2010-03-31 15:15:05
尝试:
SELECT dbo.Regex('^[0-9]*$','123')或者更好:
SELECT dbo.Regex('^\d*$','123')\d是[0-9]的标准简写。请注意,当您使用[0-9]时,它的意思是“只匹配一个数字。*通配符表示匹配零个或多个数字,因此\d*表示匹配零个或多个数字,其中包含一个空结果。
发布于 2010-03-31 15:18:41
您的正则表达式并不完全正确:"^[0-9]"只检查字符串中的第一个字符是否为数字。您的正则表达式将在"3abcde“上返回1。
使用
"^\d*$"检查字段是否只包含数字(或不包含任何数字)。如果要允许使用空格,请使用
"^\s*\d*\s*$"如果您希望允许使用符号和小数,请尝试
"^\s*(+|-)?\d*\.?\d*\s*$"发布于 2010-03-31 15:15:13
尝试^[0-9]*$,它将仅匹配0个或更多个数字:
SELECT dbo.Regex('^[0-9]*$','')应该返回1,就像应该...
SELECT dbo.Regex('^[0-9]*$','123')https://stackoverflow.com/questions/2551053
复制相似问题