Ich konvertiere SQL-Code von BigQuery in BigQuery Standard SQL.JSON_EXTRACT in BigQuery Standard SQL?
Ich kann nicht JSON_EXTRACT_SCALAR in BigQuery Standard SQL finden, gibt es ein Äquivalent?
Ich konvertiere SQL-Code von BigQuery in BigQuery Standard SQL.JSON_EXTRACT in BigQuery Standard SQL?
Ich kann nicht JSON_EXTRACT_SCALAR in BigQuery Standard SQL finden, gibt es ein Äquivalent?
Edit: Wir haben die JSON-Funktionen vor einiger Zeit implementiert. Sie können über sie in the documentation lesen.
Nicht, dass ich kenne, aber es gibt immer umgehen
Nehmen wir an, wir zB aus JSON_EXTRACT_SCALAR Dokumentation
SELECT JSON_EXTRACT_SCALAR('{"a": ["x", {"b":3}]}', '$.a[1].b') as str
Im Folgenden Code tut gleiche
CREATE TEMPORARY FUNCTION CUSTOM_JSON_EXTRACT(json STRING)
RETURNS STRING
LANGUAGE js AS """
try { var parsed = JSON.parse(json);
} catch (e) { return null }
return parsed.a[1].b;
""";
SELECT CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}') AS str
Ich denke, dies imitieren wollen kann ein guter Ausgangspunkt sein, um mit
zu experimentieren, sehen Sie mehr für Scalar UDF in BigQuery Standard SQL
Schnell Update
Nach Tasse Kaffee, beschlossen, diese "Übung" von mir
Blick als eine gute kurzfristige Lösung für mich zu beenden: o)
CREATE TEMPORARY FUNCTION CUSTOM_JSON_EXTRACT(json STRING, json_path STRING)
RETURNS STRING
LANGUAGE js AS """
try { var parsed = JSON.parse(json);
} catch (e) { return null }
return eval(json_path.replace("$", "parsed"));
""";
SELECT
CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}', '$.a[1].b') AS str1,
CUSTOM_JSON_EXTRACT('{"a": ["x", {"b":3}]}', '$.a[0]') AS str2,
CUSTOM_JSON_EXTRACT('{"a": 1, "b": [4, 5]}', '$.b') AS str3