ISJSON(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server 2016(13.x) 이상 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL 분석 엔드포인트
문자열에 유효한 JSON이 포함되어 있는지 테스트합니다.
구문
ISJSON ( expression [, json_type_constraint] )
인수
expression
테스트할 문자열입니다.
json_type_constraint
입력을 체크 인할 JSON 형식을 지정합니다. 유효한 값은 VALUE
, ARRAY
, OBJECT
또는 SCALAR
입니다. SQL Server 2022(16.x)에서 도입되었습니다.
참고 항목
인수 json_type_constraint는 Azure Synapse Analytics 전용 풀에서 지원되지 않습니다
반환 값
문자열에 유효한 JSON이 포함되어 있으면 1
을(를) 반환하고 그렇지 않으면 0
을(를) 반환합니다. expression이 null이면 NULL
을(를) 반환합니다.
문이 json_type_constraint를 생략하면 함수는 입력이 유효한 JSON 개체 또는 배열인지 테스트하여 유효하면 1
을(를), 유효하지 않으면 0
을(를) 반환합니다.
json_type_constraint가 지정된 경우 함수는 다음과 같이 JSON 형식을 확인합니다.
값 | 설명 |
---|---|
VALUE |
유효한 JSON 값에 대한 테스트입니다. JSON 개체, 어레이, 숫자, 문자열 또는 세 가지 리터럴 값(false, true, null) 중 하나일 수 있습니다 |
ARRAY |
유효한 JSON 어레이 테스트 |
OBJECT |
유효한 JSON 개체 테스트 |
SCALAR |
유효한 JSON 스칼라 테스트 - 숫자 또는 문자열 |
json_type_constraint 값 SCALAR를 사용하면 최상위 수준의 JSON 스칼라 값만 포함하는 IETF RFC 8259 준수 JSON 문서를 테스트할 수 있습니다. 최상위 수준의 JSON 스칼라 값이 없는 JSON 문서는 IETF RFC 4627을 준수합니다.
오류를 반환하지 않습니다.
설명
ISJSON
은(는) 동일한 수준에서 키의 고유성을 확인하지 않습니다.
예제
예 1
다음 예제에서는 매개 변수 값 @param
에 유효한 JSON이 포함되어 있으면 조건부로 명령문 블록을 실행합니다.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
예제 2
다음 예제는 json_col
열에 유효한 JSON이 포함된 행을 반환합니다.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
예제 3
다음 예제는 json_col
열에 유효한 최상위 수준의 JSON SCALAR가 포함된 행을 반환합니다.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
예제 4
다음 예제에서는 입력이 유효한 JSON 값(true)이므로 1을 반환합니다.
SELECT ISJSON('true', VALUE)
예제 5
다음 예제에서는 입력이 유효하지 않은 JSON 값이므로 0을 반환합니다.
SELECT ISJSON('test string', VALUE)
예제 6
다음 예제에서는 입력이 RFC 8259에 따른 유효한 JSON 스칼라이므로 1을 반환합니다.
SELECT ISJSON('"test string"', SCALAR)