簡體   English   中英

從字符串中提取數據 - SQL

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

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