でJSONとしてクエリ結果の一部だけが、私はJSON列を持つSQLテーブルXを持つ「JsonVal」&他のいくつかの列フォーマットSQL Serverの
Name Id Group JsonVal
----------------------------------------------------------
Name1 2 gg1 {"LogLevel":"2", "InfoLevel":"3"}
Name2 3 gg5 {"LogLevel":"4"}
JsonVal内のデータの意味を解析して行った後コラム私は私はこのような結果を得るように、テーブルXから読みたい、私が望むように、 :
Name Id Features
----------------------------------------------------------
Name1 2 {"HasLogLevel":"True", "LogLevel":"2", "HasInfoLevel":"True"}
Name2 3 {"HasLogLevel":"True", "LogLevel":"4", "HasInfoLevel":"False"}
私はJSONに私の列の一部だけを変換する方法を見つけることができないのです。 私はこのようなクエリでJSONのために行う場合:
SELECT Name,Id,
HasLogLevel = CASE WHEN JSON_VALUE(JsonVal,'$."LogLevel"') IS NOT NULL THEN 'True' ELSE 'False' END,
LogLevel = CASE WHEN JSON_VALUE(JsonVal,'$."LogLevel"') IS NULL THEN 'NO-VALUE' ELSE JSON_VALUE(JsonVal,'$."LogLevel"') END,
HasInfoLevel = CASE WHEN JSON_VALUE(JsonVal,'$."InfoLevel"') IS NOT NULL THEN 'True' ELSE 'False' END
FROM X FOR JSON PATH
それはJSONに(名前、IDを含む)すべての列に変換します。しかし、私は3列のHasLogLevel、LogLevel、HasInfoLevelを結果のJSONにフォーマットしたいだけです
私はSQL Serverで1つのクエリで検索して結果を得る方法はありますか?
どのようなシナリオですか?たぶんPythonでAzure SQLデータベースを照会し、そこから新しいJSON文字列を生成することができます。 –
@EstienneGranetこれは制限のためにT-SQLのみを使用できます。これをクエリで達成する方法を知っていますか? – Alfan