[英]Extracting data from string - SQL
在 BigQuery 中,我有一個表,其中有一列生成類似於下面提供的長字符串值。 字符串有兩個主要部分:cust_no 和 comp_no。 每個部分都包含一個“值”和“updated_at_ms”。 我正在嘗試將 cust_no 和 comp_no 與它們的“值”提取為兩個新列。 “Updated_at_ms”不是必需的。
{"$cust_no": {"value": "90164F59-1120-4F2B-811D-7FEDE3CEF701", "updated_at_ms": 1600301818327}, "$comp_no": {"value": "1548715734691-5404642", "updated_at_ms": 1600301818327}}
有誰知道我怎么做這個提取? 任何幫助表示贊賞。 先感謝您。
使用json_value :
with mytable as (
select '{"$cust_no": {"value": "90164F59-1120-4F2B-811D-7FEDE3CEF701", "updated_at_ms": 1600301818327}, "$comp_no": {"value": "1548715734691-5404642", "updated_at_ms": 1600301818327}}' as col
)
select
json_value(col, '$."$cust_no".value'),
json_value(col, '$."$comp_no".value'),
from mytable
很抱歉沒有完整的答案。
如果我理解正確,您想從單列中獲取“好的部分”。
一個方向是使用patindex
,也許substring
。
SELECT SUBSTRING(MyCol, (PATINDEX('%"$cust_no": {"value": "%',[MyCol])),length)
其中長度是用", "updated_at_ms"
或類似的PATINDEX計算的
此處的示例: SQL 服務器字符串提取基於模式
substring API:SUBSTRING(字符串,開始,長度)
patIndex API: PATINDEX(%pattern%, string)
計算長度方向: substring 變長
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.