ホームページ > データベース > SQL > SQL Server が Json 形式のフィールド データを解析/操作する方法の例

SQL Server が Json 形式のフィールド データを解析/操作する方法の例

WBOY
リリース: 2022-08-29 12:00:01
転載
5187 人が閲覧しました

この記事では、SQL サーバー に関する関連知識を提供します。主に、SQL SERVER には独自の解析 json 関数がなく、次のように関数 (テーブル値関数) を構築する必要があることを紹介します。この記事では、SQL Server による Json 形式のフィールド データの解析と操作に関する関連情報を紹介します。

SQL Server が Json 形式のフィールド データを解析/操作する方法の例

推奨学習: "SQL チュートリアル "

1 json storage

sqlserver に json を保存するには文字列を使用する必要がありますストレージにはタイプを使用します。通常、ストレージには nvarchar() または varchar() を使用します。ストレージにはテキストを使用しないでください。テキストを使用する場合、json 関数はサポートされません。

2 json操作

主に5つの関数を紹介します。

(1) openJson: Json文字列を開く

(2) IsJson: 文字を決定する合法的な Json 形式の文字列?はいの場合は 1、いいえの場合は 0、null の場合は null を返します。

(3) Json_Value: Json 文字列から値を抽出します。

(4) Json_Query: Json 文字列からオブジェクトまたは配列を抽出します。

(5) Json_Modify: Json 文字列の属性値を更新し、更新された Json 文字列を返します。

新しい wm_json_demo テーブルを作成します:

CREATE TABLE demo_plus.dbo.wm_json_demo (
	id int IDENTITY(1,1) NOT NULL,
	json_detail varchar(max) NOT NULL,
	CONSTRAINT PK_wm_json_demo PRIMARY KEY (id)
);
ログイン後にコピー

以下では、json 操作に関連する上記の 5 つの関数を示すために、例として wm_json_demo を使用します。

INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES('{"key":3,"value1":10,"value2":[{"vv21":13,"vv22":103}],"value3":null}');
INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES('{"key":4,"value1":15,"value2":[{"vv21":13,"vv22":103}],"value3":"10"}');
INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES('{"key":7,"value1":20,"value2":[{"vv21":13,"vv22":103}],"value3":"15"}');
ログイン後にコピー

IsJson: 文字列が合法的な Json 形式。はいの場合は 1、いいえの場合は 0、null の場合は null を返します。

SELECT
	IsJson(json_detail) as IsJson
from
	demo_plus.dbo.wm_json_demo
ログイン後にコピー

Json_Value: Json フィールドから値を抽出

Usage: Json_Value (cloumn_name,'$.json_field_name') from table

Json_Query: Json 文字列からオブジェクトまたは配列を抽出します。

Usage: Json_Query (cloumn_name,'$.json_field_name') from table

SELECT
	JSON_VALUE(json_detail,'$.key') as 'key',
	JSON_VALUE(json_detail,'$.value1') as value1,
	JSON_value(json_detail,'$.value2') as value2,
	JSON_QUERY(json_detail,'$.value2') as value2_query,
	JSON_VALUE(json_detail,'$.value3') as value3
from demo_plus.dbo.wm_json_demo;
ログイン後にコピー

Json_Modify: Json 文字列プロパティ値を更新します。そして更新された Json 文字列を返します。

JSON_MODIFY(column_name, '$.json_field', 'change_info');

SELECT
	JSON_MODIFY(json_detail,
	'$.value1',
	11) as json_detail
from
	demo_plus.dbo.wm_json_demo
where
	JSON_VALUE(json_detail,
	'$.key')= 7;
ログイン後にコピー

推奨調査: " SQL チュートリアル >>

以上がSQL Server が Json 形式のフィールド データを解析/操作する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
sql
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート