0
我想寫一個SQL選擇只記錄,如果沒有匹配的結束括號 例如,如果列"TEXT_DATA"
有'tes(ting(sql)select'
和'tes(ting(sql)sel)ect'
然後,因爲它缺少一個select語句應該只'tes(ting(sql)select'
返回匹配右大括號")"
。SQL Server的正則表達式
可能有一個或多個缺失的大括號。
我想寫一個SQL選擇只記錄,如果沒有匹配的結束括號 例如,如果列"TEXT_DATA"
有'tes(ting(sql)select'
和'tes(ting(sql)sel)ect'
然後,因爲它缺少一個select語句應該只'tes(ting(sql)select'
返回匹配右大括號")"
。SQL Server的正則表達式
可能有一個或多個缺失的大括號。
不使用正則表達式,但它會做的工作:
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來檢查。您需要編寫自定義代碼。
這隻會計算括號的出現次數,它不會檢查它們是否匹配(用close打開)。即「))sql((」這也將是與這種解決方案vaild。 – 2013-03-16 03:43:22