1

SQLテーブルにJSON文字列の列があります。'page'の値を抽出したいのですが、どうすればよいですか?{"action.type": "click"、 "page":1424}

4

2 に答える 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 に答える