gpt4 book ai didi

sql-server - SQL Server中如何验证字符串格式

转载 作者:行者123 更新时间:2023-12-02 02:00:28 25 4
gpt4 key购买 nike

我正在使用 sql server 存储过程进行数据导入。数据格式如下:

A7(5)B666

'5'是一个变量,它可以是多个数字#,即10、123、....

“666”也是一个变量。它是一个文本字符串,每个字符都是“6”,但可以有任意数量的“6”,即 666666、66、6、66666666666。

其他部分,A7()B是固定的。

有没有一种简单的方法可以在 SP 中验证这一点?我可以使用子字符串解析字符串,但它似乎太复杂了,因为我必须验证 #。 sql server中有类似正则表达式的方法吗?我可以使用 LIKE 运算符吗?除了在 WHERE 子句中,我找不到如何使用它。

谢谢

最佳答案

试试这个

DECLARE @t TABLE(v VARCHAR(500))
INSERT INTO @t
VALUES
('A7(5)B666'),
('A7(555)B66666'),
('A7(5ups)B666'),
('A7(5)B6ups66'),
('A7(5)B666 ')

SELECT v,
CASE WHEN SUBSTRING(v,CHARINDEX('(',v)+1,CHARINDEX(')',v)-CHARINDEX('(',v)-1) LIKE '%[^0-9]%'
THEN 0
ELSE 1
END isNumberInBrackets,
CASE WHEN SUBSTRING(v,CHARINDEX(')B',v)+2,DATALENGTH(v)-CHARINDEX('(',v)-1) LIKE '%[^0-9]%'
THEN 0
ELSE 1
END isNumberAfterB
FROM @t

关于sql-server - SQL Server中如何验证字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479620/

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