我的SQL表中有一列JSON字符串。我想提取“页面”值,任何想法如何? { “action.type”: “单击”, “网页”:1424}
答案 0 :(得分:2)
Hive实际上只有get_json_object
的命令答案 1 :(得分:2)
这是一个纯SQL版本。
DECLARE @json varchar(64);
DECLARE @index int;
SELECT @json = '{"action.type":"click","page":1424}';
DECLARE @length int = LEN(@json);
DECLARE @pageIndex int = CHARINDEX('page":', @json);
DECLARE @difference int = @length - (@pageIndex + 6); -- 6 is for page":
SELECT @index = CHARINDEX('page', @json);
SELECT SUBSTRING(@json, @index + 6, @difference);
这将为您提供1424
这真的是啰嗦,但它逐步显示了它是如何得到这个价值的。您可以轻松地将其重构为存储过程。