簡體   English   中英

使用 sql 查找模式的正則表達式

[英]Regex to find a pattern using sql

我在 SQL 表“客戶”中有一個名為“用戶詳細信息”的列,其中包含以下值:

{4:"2021-06-07T16:17:26.327+02:00",5:"1623075805735.phna3uyo",6:"www.abc.com/connexion",10:"loggedOut",12:"567879",2:"1026530505.1619610156",3:"event"}
{4:"2021-06-01T13:11:34.742+02:00",5:"1622545894742.ml2cyuw",6:"www.seigneuriegauthier.com/connexion",10:"loggedOut",12:"",2:"435305774.1622545085",3:"event"}
{4:"2021-06-01T10:13:30.85+02:00",5:"1622535210085.vlowlxmj",6:"www.seigneuriegauthier.com/connexion",10:"loggedOut",12:"278356",2:"1381684281.1622534907",3:"event"}
{4:"2021-06-01T10:24:51.808+02:00",5:"1622536405142.h45exkgg",6:"seigneuriegauthier.com/connexion",10:"loggedOut",12:"251666",2:"1019448131.1621925108",3:"event"}
{4:"2021-06-01T14:13:54.476+02:00",5:"1622551449049.k14838ij",6:"www.seigneuriegauthier.com/connexion",10:"loggedOut",12:"601322",2:"1975087820.1622548509",3:"event"}

我正在嘗試將數字 12:" 之后的 id 提取到另一列中,而沒有 "" 即 567879,278356 等。

由於有許多著名的“”,我無法構建正則表達式。 我嘗試了以下但沒有得到完全匹配

(?<=:)"[0-9][0-9][0-9][0-9][0-9][0-9]

如何編寫 SQL 查詢來檢索它。 請幫忙。

在 SQL 服務器上,不支持正則表達式,我們可以嘗試使用基本字符串函數SUBSTRINGCHARINDEX

SELECT
    user_details,
    SUBSTRING(user_details,
              CHARINDEX('12:"', user_details) + 4,
              CHARINDEX('"', user_details, CHARINDEX('12:"', user_details) + 4) -
                  CHARINDEX('12:"', user_details) - 4) AS val
FROM customers;

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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