ISJSON(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL Server 2016(13.x) 이상 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL 분석 엔드포인트
문자열에 유효한 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 Dedicated 풀에서 지원되지 않습니다.
반환 값
문자열에 유효한 JSON이 포함되어 있으면 1을 반환하고 그렇지 않으면 0을 반환합니다. expression이 null이면 null을 반환합니다. 문이 json_type_constraint를 생략하면 함수는 입력이 유효한 JSON 개체 또는 배열인지 테스트하여 유효하면 1을, 유효하지 않으면 0을 반환합니다. json_type_constraint가 지정된 경우 함수는 다음과 같이 JSON 형식을 확인합니다.
값 | Description |
---|---|
값 | 유효한 JSON 값에 대한 테스트입니다. JSON 개체, 어레이, 숫자, 문자열 또는 세 가지 리터럴 값(false, true, null) 중 하나일 수 있습니다 |
ARRAY | 유효한 JSON 어레이 테스트 |
OBJECT | 유효한 JSON 개체 테스트 |
스칼라 | 유효한 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)
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기