다음을 통해 공유


ISJSON (Transact-SQL)

적용 대상:Microsoft Fabric Preview의Microsoft Fabric SQL Database에서 Microsoft Fabric Warehouse의 SQL Server 2016(13.x) 이상 버전 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL 분석 엔드포인트

구문은 ISJSON 문자열에 유효한 JSON이 포함되어 있는지 여부를 테스트합니다.

Transact-SQL 구문 표기 규칙

Syntax

ISJSON ( expression [, json_type_constraint] )  

Arguments

expression

테스트할 문자열입니다.

json_type_constraint

입력을 체크 인할 JSON 형식을 지정합니다. 유효한 값은 VALUE, ARRAY, OBJECT 또는 SCALAR입니다. SQL Server 2022(16.x)에서 도입되었습니다.

Note

json_type_constraint 인수는 Azure Synapse Analytics Dedicated 풀에서 지원되지 않습니다.

Return value

문자열에 유효한 JSON이 포함되어 있으면 1을(를) 반환하고 그렇지 않으면 0을(를) 반환합니다. 이 null이면 반환 NULL 합니다.

문이 json_type_constraint 생략하면 함수는 입력이 유효한 JSON 개체 또는 배열인지 테스트하고 그렇지 않으면 반환 1 합니다 0.

json_type_constraint 지정된 경우 함수는 다음과 같이 JSON 형식을 확인합니다.

Value Description
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을 준수합니다.

오류를 반환하지 않습니다.

Remarks

ISJSON은(는) 동일한 수준에서 키의 고유성을 확인하지 않습니다.

Examples

Example 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

Example 2

다음 예제는 json_col 열에 유효한 JSON이 포함된 행을 반환합니다.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1 

Example 3

다음 예제는 json_col 열에 유효한 최상위 수준의 JSON SCALAR가 포함된 행을 반환합니다.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1 

Example 4

다음 예제에서는 입력이 유효한 JSON 값인 true이므로 1을 반환 합니다.

SELECT ISJSON('true', VALUE)

Example 5

다음 예제에서는 입력이 유효하지 않은 JSON 값이므로 0을 반환합니다.

SELECT ISJSON('test string', VALUE)

Example 6

다음 예제에서는 입력이 RFC 8259에 따른 유효한 JSON 스칼라이므로 1을 반환합니다.

SELECT ISJSON('"test string"', SCALAR)