我在將帶有 JSON 的列決議為 2 列時遇到了一些問題。我在表中的資料如下所示:
| Column1 | user_id |
| --------------- | -------------- |
| {"key2": "1"} | 1ab3 |
| {"key3": "5"} | 4jj2 |
| {"key1": "3"} | 48gi |
| {"key5": "4"} | kg99 |
我試圖使用偏移量和正則運算式:
SELECT table.user_id,
SPLIT(kv, ': ')[OFFSET(0)] AS Column1_key_type,
SPLIT(kv, ': ')[SAFE_OFFSET(1)] AS Column1_key_value
FROM table,
UNNEST(REGEXP_EXTRACT_ALL(table.Column1, r'("\w ":[^"]*)(?:,|})')) kv
但這還給我一張空桌子。
因此,我不知道如何將 JSON 中的鍵寫入第一列并將其值寫入第二列的主要問題。
我想將第一列決議為下一個視圖:
| Column1_key_type | Column1_key_value |
|---|---|
| 鍵2 | 1 |
| 關鍵3 | 5 |
| 鍵1 | 3 |
| 關鍵5 | 4 |
謝謝您的回答!
uj5u.com熱心網友回復:
您可能會考慮這樣做,而不是使用regexp函式。
SELECT SPLIT(TRANSLATE(Column1, '{}" ', ''), ':')[OFFSET(0)] Column1_key_type,
SPLIT(TRANSLATE(Column1, '{}" ', ''), ':')[OFFSET(1)] Column1_key_value
FROM sample_table;

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/518539.html
標籤:Google Cloud Collective sqljson谷歌大查询
