XML형태는 아래와 같습니다.
<A ID="1">
<Name>테스트1</Name>
</A>
<A ID="2">
<Name>테스트2</Name>
</A>
요런 XML이있는데...
얘를
ID Name
1 테스트1
2 테스트2
이 형태의 쿼리로 SELECT하고싶습니다.
ID하고 Name하고 따로 각각 불러오는건 쉽게했고요...
사실 두개 동시에 하는것도 부모ID와 자식ID이용해서 서브쿼리로 불러오는 방법으로 성공은했지만..
속도가 너무 않나오네요;;;
좀 도와주세요ㅠ
버전은 2008 R2입니당
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<A ID="1">
<B>test1</B>
</A>
<A ID="2">
<B>test2</B>
</A>
</ROOT>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT ID, REPLACE(REPLACE(VALUE,'<B>',''), '</B>','') AS VALUE
FROM OPENXML (@idoc, '/ROOT/A/B',1)
WITH (ID INT '../@ID',
Value varchar(20) '@mp:xmltext')
EXEC sp_xml_removedocument @iDoc