"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > SQL Server에서 XML 열의 값을 쿼리하는 방법은 무엇입니까?

SQL Server에서 XML 열의 값을 쿼리하는 방법은 무엇입니까?

2025-04-19에 게시되었습니다
검색:814

How to Query Values within XML Columns in SQL Server?

SQL Server의 XML 열에서 데이터에 액세스하는

SQL Server를 사용하면 XML 데이터 유형으로 정의 된 열에 XML 데이터를 저장할 수 있습니다. 이 열에서 특정 데이터를 검색하려면 전문화 된 쿼리가 필요합니다.

이 구조와 함께 "역할"이라는 XML 열이 있다고 가정 해 봅시다 :

AlphaBetaGamma
선택하다 역할 에서 mytable 어디 roboles.value ( '(/root/rober) [1]', 'varchar (max)') 'stringtosearchfor'

SELECT
  Roles
FROM
  MyTable
WHERE
  Roles.value('(/root/role)[1]', 'varchar(max)') LIKE 'StringToSearchFor'
역할

요소의 값을 추출하여 varchar (max) 로 변환합니다. 이를 통해 특정 역할을 검색 할 수 있습니다. 열이 이미 XML 데이터 유형이 아닌 경우 cast 를 사용하여 쿼리하기 전에 변환합니다.

쿼리는 XML 속성을 대상으로 할 수도 있습니다. 예를 들어, "데이터"열의이 XML을 사용하여 :

선택하다 [데이터] 에서 [dbo]. [CodesyStemCodes_Data] 어디 cast ([data] as xml) .value ( '(/utilities.codesystems.codesystemcodes/@codesystem) [1],'varchar (max) '='2 '

T-SQL에서 고급 XML 쿼리를 보려면
SELECT
  [data]
FROM
  [dbo].[CodeSystemCodes_data]
WHERE
  CAST([data] AS XML).value('(/Utilities.CodeSystems.CodeSystemCodes/@CodeSystem)[1]', 'varchar(max)') = '2'
t-sql

를 사용하여 XML 필드 쿼리
  • SQL Server에서 XML 데이터를 평평하게하는
  • 또는 Cross Apply 는 여러 "역할"요소를 검색하는 데 더 많은 유연성을 제공합니다 :

선택하다 * 에서 ( 선택하다 pref.value ( '(text ()) [1]' ','varchar (32) ')) 에서 mytable 크로스 적용 역할로서 롤리 ( '/root/rober') (pref) ) 결과 어디 '%ga%' 와 같은 rolename

이 접근법은 SQL Server의 XML 열에서보다 효율적이고 타겟팅 된 데이터 추출을 허용합니다.
            
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3