substring 함수(XQuery)

$sourceString 값 중 $startingLoc 값이 나타내는 위치에서부터 $length 값이 나타내는 문자 수만큼을 포함하는 부분을 반환합니다.

구문

fn:substring($sourceString as xs:string?,
                          $startingLoc  as as xs:decimal?) as xs:string?

fn:substring($sourceString as xs:string?,
                          $startingLoc as xs:decimal?,
                          $length as xs:decimal?) as xs:string?

인수

  • $sourceString
    원본 문자열입니다.

  • $startingLoc
    원본 문자열에서 하위 문자열이 시작하는 시작 지점입니다. 이 값이 음수이거나 0이면 0보다 큰 위치에 있는 문자만 반환됩니다. 이 값이 $sourceString 길이보다 크면 길이가 0인 문자열이 반환됩니다.

  • $length
    검색할 문자 개수입니다(옵션). 이 인수를 지정하지 않으면 $startingLoc에 지정된 위치에서 문자열 끝까지 모든 문자를 반환합니다.

주의

함수에 3개의 인수를 지정하면 해당 위치 $p이 따르는 $sourceString의 문자가 반환됩니다.

fn:round($startingLoc) <= $p < fn:round($startingLoc) + fn:round($length)

$length 값은 시작 위치 이후의 $sourceString 값에 있는 문자 개수보다 클 수 있습니다. 이 경우 하위 문자열은 $sourceString 끝까지 있는 문자를 반환합니다.

문자열의 첫 번째 문자는 위치 1에 있습니다.

$sourceString 값이 빈 시퀀스인 경우 길이가 0인 문자열로 취급됩니다. 그렇지 않으면 $startingLoc 또는 $length가 빈 시퀀스인 경우 빈 시퀀스가 반환됩니다.

보조 문자(서로게이트 쌍)

XQuery 함수에서 서로게이트 쌍의 동작은 데이터베이스 호환성 수준과 일부 경우 함수의 기본 네임스페이스 URI에 따라 달라집니다. 자세한 내용은 SQL Server 2012 데이터베이스 엔진 기능의 주요 변경 항목의 "서로게이트 인식 XQuery 함수" 섹션을 참조하십시오. 또한 ALTER DATABASE 호환성 수준(Transact-SQL)데이터 정렬 및 유니코드 지원를 참조하십시오.

구현 시 제한 사항

SQL Server에서는 $startingLoc 및 $length parameters의 유형이 xs:double이 아닌 xs:decimal이어야 합니다.

SQL Server에서는 $startingLoc 및 $length가 빈 시퀀스일 수 있습니다. 빈 시퀀스도 ()에 매핑되는 동적 오류 결과로 가능한 값이기 때문입니다.

이 항목에서는 AdventureWorks2012 데이터베이스의 다양한 xml 유형 열에 저장된 XML 인스턴스에 대한 XQuery 예를 제공합니다.

1.substring() XQuery 함수를 사용하여 부분 요약 제품 모델 설명 검색

다음 쿼리는 제품 모델에 대해 기술하는 텍스트(문서의 <Summary> 요소)에서 처음 50개 문자를 검색합니다.

WITH XMLNAMESPACES ('https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription' AS pd)
SELECT ProductModelID, CatalogDescription.query('
    <Prod>{ substring(string((/pd:ProductDescription/pd:Summary)[1]), 1, 50) }</Prod>
 ') as Result
FROM Production.ProductModel
where CatalogDescription.exist('/pd:ProductDescription')  = 1;

이전 쿼리에서 다음을 유의하십시오.

  • string() 함수는 <Summary> 요소의 문자열 값을 반환합니다. <Summary> 요소에 텍스트와 하위 요소(html 서식 지정 요소)가 모두 들어 있고, 이러한 요소를 건너뛰고 모든 텍스트를 검색할 것이기 때문에 이 함수가 사용됩니다.

  • substring() 함수는 **string()**에 의해 검색된 문자열 값에서 처음 50개 문자를 검색합니다.

다음은 결과의 일부입니다.

ProductModelID Result
-------------- ----------------------------------------------------
19      <Prod>Our top-of-the-line competition mountain bike.</Prod> 
23      <Prod>Suitable for any type of riding, on or off-roa</Prod>
...

참고 항목

참조

xml 데이터 형식에 대한 XQuery 함수