[英]Using Regex in a SQL Select
我有一個包含 JSON 有效負載的 SQL 列。 我正在編寫一個 SQL 查詢,它將使用正則表達式提取該列的一部分。
在以下字段中:
{
"myContent":{
"fieldG":null,
"valuable":"this is the text",
"fieldH":[
"a4a6ba1c2e0e4a9c89dac46f1092b505"
],
"fieldI":"1"
},
"fieldJ":"1441375349399"
}
我想在“有價值”之后立即刮掉字符串:
我正在嘗試這樣的事情:
\"valuable\":\".*\"
……但這無濟於事。 首先,我只想要有價值和冒號之后的東西。 此外,該特定正則表達式從“valueable:”一直匹配到該行的整個末尾。 那是比我需要的更多的文字。
在 SQL Server 2016 CTP3 中,您可以使用 JSON_VALUE 函數,例如:SELECT JSON_VALUE(column, '$.mycontent.valuable')。 見http://blogs.msdn.com/b/jocapc/archive/2015/05/16/json-support-in-sql-server-2016.aspx
如果你等不及 Sql Server 2016,你可以使用一些 JSON CLR 庫,例如http://www.codeproject.com/Articles/1000953/JSON-for-SQL-Server-Part否則你需要使用 PATINDEX 和子字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.