gpt4 book ai didi

sql - LIKE 子句中的正则表达式只接受字母数字和破折号

转载 作者:行者123 更新时间:2023-12-04 03:31:40 28 4
gpt4 key购买 nike

下面是我的 SQL 函数脚本,它将帮助识别字母数字值和破折号 ( - ):

CREATE   FUNCTION [dbo].[FN_VALIDATE_ALPHANUMERIC_AND_DASHES](@TX_INPUT VARCHAR(1000))RETURNS BIT AS
BEGIN
DECLARE @bitInputVal AS BIT = 0
DECLARE @InputText VARCHAR(1000)

SET @InputText = LTRIM(RTRIM(ISNULL(@TX_INPUT,'')))

IF @InputText <> ''
BEGIN
SET @bitInputVal = CASE
WHEN @InputText LIKE '%[A-Za-z0-9-]%' THEN 1
ELSE 0
END
END
RETURN @bitInputVal
END
我有问题,我尝试这个查询: SELECT dbo.FN_VALIDATE_CLAIMANT_REF_NO('AbcdefgH-1234*')它给了我 1 的结果虽然字符 *不包含在正则表达式中,应该返回 0反而。
我想要实现的是明确验证字符串是否包含 字母数字 (字母和数字)和 破折号 只要。
请注意,字符长度没有限制,只需检查字符串是否由字母数字和破折号组成。

最佳答案

您正在测试“字符串中是否存在任何字母、数字或破折号”
您应该改为测试是否存在字母、数字或破折号以外的任何字符。

SET @bitInputVal = CASE WHEN @InputText LIKE '%[^A-Za-z0-9-]%' THEN 0 ELSE 1 END

关于sql - LIKE 子句中的正则表达式只接受字母数字和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66686080/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com