gpt4 book ai didi

c# - 正则表达式 '\b' 的 T-SQL 等效项

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

我正在将使用正则表达式的 CLR 函数转换为 SQL 函数。我知道 SQL Server 不完全支持正则表达式,但我只需要一种情况即可工作,即单词搜索。

搜索字段值:{"Id":1234, "Title": "The Quick Brown"}

.NET 中的正则表达式模式:'\b' + '"Id":1234' '\b'

我希望当搜索字段包含 "Id":1234 但不包含 "Id":12345

时能够匹配

我该如何实现这一目标?我已经尝试过了,但当数字 1234 以空格或 b 而不是逗号结尾时,显然不起作用。

DECLARE @match bit = 0
DECLARE @input nvarchar(max) = '{"Id":1234, "Title": "The quick brown"}'
DECLARE @pattern nvarchar(max) ='"Id":1234'

SELECT @match = 1 FROM (VALUES ('')) table1 (column1)
WHERE @Input LIKE '%' + @pattern + ',%'

最佳答案

考虑到您有 JSON 数据,为什么不这样解析它呢?

DECLARE @JSON nvarchar(MAX) = '{"Id":1234, "Title": "The quick brown"}';

SELECT *
FROM (VALUES(@JSON)) V(J)
CROSS APPLY OPENJSON(@JSON)
WITH (Id int,
Title varchar(50)) OJ
WHERE OJ.Id = 1234;

关于c# - 正则表达式 '\b' 的 T-SQL 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59874944/

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