SQLServer XML 조회 18 마디 입문 강좌

5029 단어 SQLServerXML 조회
 
/*01.
02.sql xml :
03. --by jinjazz
04. --http://blog.csdn.net/jinjazz
05.
06. 1、xml: 、
07.
08. 2、xpath: , windows ( dir )
09.
10. , :
11. "." ,".." ,"/" ,"//" ,
12. "name" ,"@name"
13.
14. " [ ]" ,
15. : ,last(),last()-
16. :position()< ,@name=' ',name=' '
17. :and or
18.
19. 3、xquery: xpath ,sqlserver xquery
20. exist(xpath ):
21. query(xpath ): xml
22. value(xpath , ): ,xpath
23. nodes(xpath ):
24.*/
 
declare @data xml
set @data='
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="jp">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="cn">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
-테스트 문 구 는 문법 을 이해 하지 못 하면 위의 xpath 규칙 과 xquery 함수 설명--1,문서 select@data--2,임의의 단계 에 price 노드 [email protected]('/price')-3 을 참고 하여 모든 북 노드 [email protected]('//book')-4,lang 속성 을 포함 하 는 모든 노드 [email protected]('/*[@lang]')-5 를 가 져 옵 니 다.첫 번 째 북 노드 [email protected]('/북[1]')-6,앞의 두 북 노드 [email protected]('/북[position()<=2]')-7,마지막 북 노드 [email protected]('/북[last()')-8,price>35 의 모든 북 노드 [email protected]('/북[price>35]')-9,category="WEB"의 모든 북 노드 [email protected]('/book[@category="WEB"]')--10,title 을 가 져 온 lang="en"의 모든 북 노드 [email protected]('//book/title[@lang="en"]')--11,title 을 가 져 온 lang="en"및 price>35 의 모든 북 노드 [email protected]('/book[./title[@lang="en"or price>35]')--12,title 의 lang="en"및 price>35 의 첫 번 째 책의(첫 번 째)title [email protected]('/book[./title[@lang="en"]and price>35]')를 가 져 옵 니 다.value('(book/title)[1]','varchar(max)'-13,12 [email protected]('/book[./title[@lang]and price>35]/title)[1],'varchar(max)'-14,title 의 lang="en"및 price>35 의 첫 번 째 북(첫 번 째)title 의 lang 속성 [email protected]('(/book[@category="WEB"and price>35]/title)[1]/@lang)[1],'varchar(max)'-15,첫 번 째 책 을 가 져 온 title select Tab.Col.value('(book/title)[1]','varchar(max)'as title [email protected]('bookstore')as Tab(Col)--16,각 책의 첫 번 째 author select Tab.Col.value('author[1]','varchar(max)'as title [email protected]('//book')as Tab(Col)--17,모든 책의 모든 정 보 를 가 져 옵 니 다 select T.C.value('title[1','varchar(max)')as title,T.C.value('year[1','int')as year,T.C.value('title[1]','varchar(max)'as title,T.C.value('price[1],'float')as price,T.C.value('author[1]','varchar(max)')as author 1,T.C.value('author[2','varchar(max)')as author 2,T.C.value('author[3]','varchar(max)')as author 3,T.C.value('author[4]','varchar(max)')as author 4 [email protected]('/book')as T(C)--18,일본어(lang!="jp")가격 이 35 책 이상 인 모든 정 보 는 selectT.C.value('title[1]','varchar(max)')as title,T.C.value('year[1]','int')as year,T.C.value('title[1]','varchar(max)'as title,T.C.value('price[1]','float')as price,T.C.value('author[1]','varchar(max)'as author1,T.C.value(max),'T.C.value(','varchar[1]','varchar(max)')as title,T.C.value('author1,'T.C.value(max)''author[3]','varchar(max)') as author3, T.C.value('author[4]','varchar(max)') as author4 from @data.nodes('//book[./title[@lang!="jp"] and price>35 ]') as T(C)

좋은 웹페이지 즐겨찾기