반응형
Mssql JSON_MODIFY
Mssql JSON 추가, 수
MS SQL Server의 JSON_MODIFY 함수는 JSON 문자열의 값을 수정하는 데 사용됩니다. 이 함수를 사용하면 JSON 객체 내의 특정 키의 값을 변경하거나, 새로운 키-값 쌍을 추가하거나, 배열의 요소를 수정할 수 있습니다.
기본 사용법
JSON_MODIFY 함수는 세 개의 필수 인수를 사용합니다.
- json_string : 수정할 JSON 문자열입니다.
- path : 수정할 JSON 객체 또는 배열의 위치를 지정하는 경로입니다.
- new_value : 수정할 값입니다.
JSON_MODIFY(json_string, path, new_value)
※ 현재 없는 키값 path 입력 시 새롭게 추가됩니다.
다음은 JSON_MODIFY 함수를 사용하여 JSON 데이터를 수정하는 다양한 예제입니다.
스칼라 값 수정
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"info": {
"address": "서울",
"phone": "010-1234-5678"
}
}';
-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');
SELECT @json;
새로운 키값 추가
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"info": {
"address": "서울",
"phone": "010-1234-5678"
}
}';
-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');
-- 새로운 키-값 추가
SET @json = JSON_MODIFY(@json, '$.country', '대한민국');
SELECT @json;
-- 아래 결과
{
"info": {
"address": "서울",
"phone": "010-1234-5678"
},
"country":"대한민국"
}
배열 요소 수정
※ 배열 값은 0부터 시작합니다.
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"skills": ["SQL", "C#", "JavaScript"]
}';
-- 배열 요소 수정
SET @json = JSON_MODIFY(@json, '$.skills[1]', 'react');
SELECT @json;
--아래 결과
{
"skills": ["SQL", "react", "JavaScript"]
}
객체 내 객체 수정
DECLARE @json NVARCHAR(MAX);
SET @json = N'{
"info": {
"address": "서울",
"phone": "010-1234-5678"
}
}';
-- 객체 내 값 수정
SET @json = JSON_MODIFY(@json, '$.info.address', '부산');
SELECT @json;
--아래 결과
{
"info": {
"address": "부산",
"phone": "010-1234-5678"
}
}
- JSON_MODIFY 함수는 SQL Server 2016 이상 버전에서만 사용할 수 있습니다.
- 경로를 잘못 지정하면 NULL 값이 반환될 수 있습니다.
- JSON_MODIFY 함수는 원본 JSON 문자열을 변경하지 않고, 수정된 JSON 문자열을 반환합니다.
- JSON_MODIFY 함수는 JSON 데이터의 구조를 변경할 수 없습니다. 예를 들어, 객체를 배열로 변경하거나, 배열을 객체로 변경할 수 없습니다.
반응형
'db > mssql' 카테고리의 다른 글
[Mssql] DATEPART 특정 날짜 요일 검색 (0) | 2025.03.22 |
---|---|
[Mssql] 1년 날짜 입력 (0) | 2025.03.22 |
[Mssql] Json 파싱 (0) | 2025.03.22 |
MSSQL 버전 확인 하는 방법 (0) | 2024.12.02 |
mssql 테이블 설명 (1) | 2024.08.19 |