SQLテーブルにJSON文字列の列があります。'page'の値を抽出したいのですが、どうすればよいですか?{"action.type": "click"、 "page":1424}
4259 次
2 に答える
2
Hiveには、実際にはそのget_json_object専用のコマンドがあります
于 2012-06-13T19:29:50.213 に答える
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
それは本当に長い間ですが、それがどのようにその価値を得るかを段階的に示しています。これをストアドプロシージャに簡単にリファクタリングできます。
于 2012-06-13T19:30:09.213 に答える