我正在尝试编写一个 SQL 以仅在没有匹配的右大括号时才选择记录,例如,如果该列"TEXT_DATA"
有'tes(ting(sql)select'
,'tes(ting(sql)sel)ect'
那么 select 语句应该只返回'tes(ting(sql)select'
,因为它缺少匹配的右大括号")"
。
可能缺少一个或多个右括号。
我正在尝试编写一个 SQL 以仅在没有匹配的右大括号时才选择记录,例如,如果该列"TEXT_DATA"
有'tes(ting(sql)select'
,'tes(ting(sql)sel)ect'
那么 select 语句应该只返回'tes(ting(sql)select'
,因为它缺少匹配的右大括号")"
。
可能缺少一个或多个右括号。
不使用正则表达式,但它会完成这项工作:
Select text_data as [TEXT_DATA],
len(text_data)-len(replace(text_data, '(', '')) as [CountOpen],
len(text_data)-len(replace(text_data,')','')) as [CountClose]
into #temp
from table
Select TEXT_DATA from #temp where CountOpen<>CountClose
SQL Server 不支持复杂的正则表达式。您无法使用 TSQL 进行检查。您将需要编写自定义代码。