Redshift परिचय
Jason Myers
Principal Architect
SUPER टाइप में संग्रहीतIS_VALID_JSON - सुनिश्चित करता है कि पूरा JSON ऑब्जेक्ट वैध हैSELECT IS_VALID_JSON('{"one":1, "two":2}');
IS_VALID_JSON
=============
true
SELECT IS_VALID_JSON('{"one":1, "two":2');
IS_VALID_JSON
=============
false
SELECT IS_VALID_JSON_ARRAY('{"one":1}')
IS_VALID_JSON_ARRAY
===================
false
SELECT IS_VALID_JSON_ARRAY('[1,2,3]')
IS_VALID_JSON_ARRAY
===================
true
JSON_EXTRACT_PATH_TEXT दिए गए JSON path पर वैल्यू लौटाता हैSELECT JSON_EXTRACT_PATH_TEXT('{"one":1, "two":2}', 'one');
JSON_EXTRACT_PATH_TEXT
======================
1
-- खराब फॉर्म वाले JSON से path निकालने की कोशिश
SELECT JSON_EXTRACT_PATH_TEXT('{"one":1, "two":2', 'one');
JSON parsing error
DETAIL:
=========================================
error: JSON parsing error
code: 8001
context: invalid json object
query: [child_sequence:'one']
location: funcs_json.hpp:202
process: padbmaster [pid=1073807529]
=========================================
SELECT JSON_EXTRACT_PATH_TEXT('
{
"one_object":{
"nested_three": 3,
"nested_four":4
},
"two":2
}',
'one_object', 'nested_three');
JSON_EXTRACT_PATH_TEXT
======================
3
NULL लौटाता हैSELECT JSON_EXTRACT_PATH_TEXT('
{
"one_object":{
"nested_three": 3,
"nested_four":4
},
"two":2
}',
'two', 'nested_five');
JSON_EXTRACT_PATH_TEXT
======================
NULL
JSON_EXTRACT_ARRAY_ELEMENT_TEXT array index पर वैल्यू लौटाता है SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[1.1,400,13]', 2);
JSON_EXTRACT_ARRAY_ELEMENT_TEXT
===============================
13
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[1.1,400,13]', 3);
JSON_EXTRACT_ARRAY_ELEMENT_TEXT
===============================
NULL
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT(
JSON_EXTRACT_PATH_TEXT('
{
"one":1,
"nested_two":[3,4,5]
}',
-- JSON_EXTRACT_PATH_TEXT से nested_two की वैल्यू एक्सट्रैक्ट करना
'nested_two'
),
-- JSON_EXTRACT_ARRAY_ELEMENT_TEXT से array के पोज़िशन एक का आइटम एक्सट्रैक्ट करना
1
);
JSON_EXTRACT_ARRAY_ELEMENT_TEXT
===============================
4
-- दो keys ('nested_two', '1') पास कर रहे हैं ताकि
-- nested_two की array वैल्यू का दूसरा एलिमेंट चुना जाए
SELECT JSON_EXTRACT_PATH_TEXT('
{
"one":1,
"nested_two":[3,4,5]
}',
'nested_two', '1'
);
JSON_EXTRACT_PATH_TEXT
======================
4
WITH location_details AS (
SELECT '{
"location": "Salmon Challis National Forest",
}'::SUPER::VARCHAR AS data
)
Redshift परिचय