2012-06-13 66 views
1

我的SQL表中有一列JSON字符串。我想提取'页面'的值,任何想法如何? { “action.type”: “点击”, “网页”:1424}解析SQL中的JSON字符串

+0

实际上使用Hive :( –

+1

刚刚有一个纯粹的SQL版本工作。 –

回答

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

这真是啰嗦的结果,但它显示一步一步如何获得的该值。您可以轻松地将其重构为存储过程。