1、JSON文字列は次のように:
DECLARE @JsonInfo NVARCHAR(2000 ) SET @JsonInfo = N ' { " CalcPayInput " :{ " ServiceCode ":" 2131296 " 、 " アイテム" :[ { " 長さ":10 、 " 幅":50 、 " 高":80 } ] }、 " BusinessBody " :{ " WaybillNumber ":" SZY222019082001135 " } } ' SELECTレン(@JsonInfo) / * 実際の記憶はこれを使用することが推奨され、圧縮線保存* / SET @JsonInfo = N ' { "CalcPayInputを": { "ServiceCode": "2131296" 、 "アイテム":[{ "長さ":10、 "幅":50、 "高":80}]}、 "BusinessBody":{ "WaybillNumber": "SZY222019082001135"}} " SELECTのみ(@JsonInfo)
図2に示すように、得られた値JSON文字列フィールドServiceCode
注意:SQL Serverの2016以降のバージョンのサポートを(古いバージョンをアップグレードする必要があります)、それは文字列が有効なJSONが含まれている場合は、JSON JSON文の選択ISJSON(@JsonInfo)があるかどうかを検証解析する前に、それは返す1、そうでない場合、それは返す0を。式がNULLの場合、NULLが返されます。 JSON_VALUE SELECT(@JsonInfo、' $ .CalcPayInput.ServiceCode ')ServiceCode
3、Lengthフィールド列JSONの値を求めます
注意:アイテムが設定されている階層は、取得の最初のセットは、[ 0 ]、インデックスは0から始まる (@JsonInfo、SELECT JSON_VALUE ' $ .CalcPayInput.Items [0] .LENGTH ')の長さ
図4に示すように、値フィールドのJSON文字列を取得するWaybillNumber
注:サブオブジェクト層の第一の複数のJSON文字列が存在する SELECT JSON_VALUE(@JsonInfo、「$ .BusinessBody.WaybillNumber 」)WaybillNumber
5、変性WaybillNumber JSON文字列フィールドの値YZY222019082001135
注:サブオブジェクト層の第一の複数のJSON文字列が存在する SELECT JSON_MODIFY(@JsonInfo、「$ .BusinessBody.WaybillNumber 」、「YZY222019082001135 」)JsonInfo
6、文字列が削除さWaybillNumberフィールドJSONであります
注意:NULLに設定されているJSON_MODIFY機能を使用するために不要なフィールドを配置する (@JsonInfo、SELECT JSON_MODIFY ' $ .BusinessBody.WaybillNumber '、ヌルを)JsonInfo
7、JSON文字列フィールドの製品コードを追加します
注意:JSON_MODIFY機能を使用するために不要なフィールドを配置すると、追加 SELECT JSON_MODIFY(@JsonInfo、' $ .BusinessBody.ProductCodeを'、' 256 354 ')JsonInfo
8、リファレンスドキュメント
HTTPS:// docs.microsoft.com/zh-cn/sql/t-sql/functions/isjson-transact-sql?view=sql-server-2017 ます。https:// docs.microsoft.com/zh-cn/sql / T-SQL /機能/ jsonの価値のTransact-SQLビュー= SQLサーバ-2017? のhttps:// docs.microsoft.com/zh-cn/sql/t-sql/functions/json-query-transact- ?SQLビュー= SQLサーバ-2017 のhttps:// docs.microsoft.com/zh-cn/sql/t-sql/functions/json-modify-transact-sql?view=sql-server-2017
マイクロ手紙:13722885914は私のアルバムを見る HTTPS:ジェーンの本を// www.jianshu.com/u/dbfbe12c187dは、 私が知っている、私の能力を最大限に解決し、質問をし、私を追加することを歓迎します。