Rumah > pangkalan data > SQL > teks badan

Contoh kaedah untuk SQL Server menghuraikan/memanipulasi data medan dalam format Json

WBOY
Lepaskan: 2022-08-29 12:00:01
ke hadapan
5095 orang telah melayarinya

Artikel ini membawa anda pengetahuan yang berkaitan tentang SQL server Terutamanya memperkenalkan bahawa SQL SERVER tidak mempunyai fungsi parsing json sendiri. Anda perlu membina fungsi (fungsi bernilai jadual) sendiri berikut Artikel ini memperkenalkan maklumat yang berkaitan tentang penghuraian/manipulasi data medan SQL Server dalam format Json Saya harap ia akan membantu semua orang.

Contoh kaedah untuk SQL Server menghuraikan/memanipulasi data medan dalam format Json

Pembelajaran yang disyorkan: "Tutorial SQL"

1 storan json

Menyimpan json dalam sqlserver, diperlukan Gunakan jenis rentetan untuk penyimpanan Secara amnya gunakan nvarchar() atau varchar() untuk storan. Jangan gunakan teks untuk storan.

2 operasi json

terutamanya memperkenalkan 5 fungsi:

(1) openJson: buka rentetan Json

(2) IsJson: tentukan watak Adakah rentetan dalam format Json undang-undang? Mengembalikan 1 jika ya, 0 jika tidak, dan batal jika batal.

(3) Json_Value: Ekstrak nilai daripada rentetan Json.

(4) Json_Query: Ekstrak objek atau tatasusunan daripada rentetan Json.

(5) Json_Modify: Kemas kini nilai atribut dalam rentetan Json dan kembalikan rentetan Json yang dikemas kini.

Buat jadual wm_json_demo baharu:

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)
);
Salin selepas log masuk

Berikut mengambil wm_json_demo sebagai contoh untuk menunjukkan 5 fungsi di atas yang berkaitan dengan operasi json

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"}');
Salin selepas log masuk

IsJson: Tentukan sama ada rentetan itu Ia bukan format Json yang sah. Mengembalikan 1 jika ya, 0 jika tidak, dan batal jika batal.

SELECT
	IsJson(json_detail) as IsJson
from
	demo_plus.dbo.wm_json_demo
Salin selepas log masuk

Json_Value: Ekstrak nilai daripada medan Json

Penggunaan: Json_Value (cloumn_name,'$.json_field_name') daripada jadual

Json_Query: Ekstrak objek atau tatasusunan daripada rentetan Json.

Penggunaan: Json_Query (cloumn_name,'$.json_field_name') daripada jadual

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;
Salin selepas log masuk

Json_Modify: Kemas kini rentetan Json nilai atribut dalam dan mengembalikan rentetan Json yang dikemas kini.

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;
Salin selepas log masuk

Disyorkan kajian: "Tutorial SQL

Atas ialah kandungan terperinci Contoh kaedah untuk SQL Server menghuraikan/memanipulasi data medan dalam format Json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sql
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!