簡體   English   中英

在 SQL 選擇中使用正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM