日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SQLServer數(shù)據(jù)庫(kù)中FORXMLAUTO的使用詳解續(xù)

之前我們介紹過(guò):SQL Server數(shù)據(jù)庫(kù)FOR XML AUTO的使用詳解,本文我們介紹一些稍微復(fù)雜的應(yīng)用,首先我們先看下面的代碼:

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),確山網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:確山等地區(qū)。確山做網(wǎng)站價(jià)格咨詢(xún):18982081108

 
 
 
 
  1. CREATE TABLE Person(  
  2. ID INT IDENTITY(1,1) NOT NULL,  
  3. Name NVARCHAR(20) NOT NULL DEFAULT(''),  
  4. Age INT DEFAULT(0) NOT NULL,  
  5. Sex BIT DEFAULT(0) NOT NULL  
  6. )  
  7. --DROP TABLE [Order]  
  8. CREATE TABLE [Order](  
  9. ID INT IDENTITY(1,1) PRIMARY KEY,  
  10. PersonID INT DEFAULT(0) NOT NULL,  
  11. TotalPrice DECIMAL DEFAULT(0) NOT NULL  
  12. )  
  13. CREATE TABLE Product(  
  14. ID INT IDENTITY(1,1) PRIMARY KEY,  
  15. Price DECIMAL(8,2) DEFAULT(0.00) NOT NULL,  
  16. Img NVARCHAR(50) DEFAULT('') NOT NULL  
  17. )  
  18. CREATE TABLE OrderDetail(  
  19. ID INT IDENTITY(1,1) PRIMARY KEY,  
  20. OrderID INT DEFAULT(0) NOT NULL,  
  21. ProductID INT DEFAULT(0) NOT NULL,  
  22. Price DECIMAL(8,2) DEFAULT(0.00) NOT NULL  
  23. )  
  24. INSERT INTO Person(Name,Age,Sex)  
  25. SELECT '張三',28,1 UNION ALL  
  26. SELECT '李四',28,1 UNION ALL  
  27. SELECT '王五',28,1   
  28. INSERT INTO [Order](PersonID,TotalPrice)  
  29. SELECT 1,100.0 UNION ALL  
  30. SELECT 1,111.0 UNION ALL  
  31. SELECT 2,112.0 UNION ALL  
  32. SELECT 3,98.0 UNION ALL  
  33. SELECT 3,150.49 UNION ALL  
  34. SELECT 3,58  
  35. INSERT INTO Product(Price,Img)  
  36. SELECT 101.0,'1.png' UNION ALL  
  37. SELECT 102.0,'2.png' UNION ALL  
  38. SELECT 103.0,'3.png' UNION ALL  
  39. SELECT 104.0,'4.png' UNION ALL  
  40. SELECT 105.0,'5.png'  
  41. INSERT INTO OrderDetail(OrderID,ProductID,Price)  
  42. SELECT TOP 3 3,ID,Price FROM Product  
  43. SELECT * FROM Person  
  44. SELECT * FROM [Order]  
  45. SELECT * FROM Product  
  46. SELECT * FROM OrderDetail  
  47. Person  
  48. ID Name Age Sex  
  49. ----------- -------------------- ----------- -----  
  50. 1 張三 28 1  
  51. 2 李四 28 1  
  52. 3 王五 28 1  
  53. (3 行受影響)  
  54. [Order]  
  55. ID PersonID TotalPrice  
  56. ----------- ----------- ---------------------------------------  
  57. 1 1 100  
  58. 2 1 111  
  59. 3 2 112  
  60. 4 3 98  
  61. 5 3 150  
  62. 6 3 58  
  63. (6 行受影響)  
  64. Product  
  65. ID Price Img  
  66. ----------- --------------------------------------- --------------------------------------------------  
  67. 1 101.00 1.png  
  68. 2 102.00 2.png  
  69. 3 103.00 3.png  
  70. 4 104.00 4.png  
  71. 5 105.00 5.png  
  72. (5 行受影響)  
  73. OrderDetail  
  74. ID OrderID ProductID Price  
  75. ----------- ----------- ----------- ---------------------------------------  
  76. 1 1 1 101.00  
  77. 2 1 2 102.00  
  78. 3 1 3 103.00  
  79. 4 1 4 104.00  
  80. 5 1 5 105.00  
  81. 6 2 1 101.00  
  82. 7 2 2 102.00  
  83. 8 2 3 103.00  
  84. 9 3 1 101.00  
  85. 10 3 2 102.00  
  86. 11 3 3 103.00  
  87. (11 行受影響) 

理下其中的關(guān)系:

會(huì)員表Person與訂單表Order為一對(duì)多關(guān)系,其中Order.PersonID = Person.ID

訂單表與訂單詳情表為一對(duì)多關(guān)系,其中OrderDetail.OrderID = Order.ID

產(chǎn)品表與訂單詳情表為一對(duì)多關(guān)系,其中OrderDetail.ProductID = Product.ID

如下圖1

圖1

可以開(kāi)始了:

先來(lái)看有那些訂單,分別為誰(shuí)的訂單,以及訂單詳情,SQL腳本及查詢(xún)結(jié)果如下:

 
 
 
 
  1. 1: SELECT   
  2. 2: [Order].ID,  
  3. 3: [Order].PersonID,  
  4. 4: OrderDetail.OrderID,  
  5. 5: OrderDetail.ProductID,  
  6. 6: OrderDetail.Price  
  7. 7: FROM [Order]  
  8. 8: INNER JOIN OrderDetail ON [Order].ID = OrderDetail.OrderID  
  9. 9: FOR XML AUTO,ROOT('Record') 

查詢(xún)結(jié)果如下:

 
 
 
 
  1. 1:  
  2. 2:  
  3. 3:  
  4. 4:  
  5. 5:  
  6. 6:  
  7. 7:  
  8. 8:  
  9. 9:  
  10. 10:  
  11. 11:  
  12. 12:  
  13. 13:  
  14. 14:  
  15. 15:  
  16. 16:  
  17. 17:  
  18. 18:  
  19. 19:  

調(diào)整下查詢(xún)列的順序,再看下結(jié)果,變了?。?/p>

 
 
 
 
  1. SELECT   
  2. OrderDetail.OrderID,  
  3. OrderDetail.ProductID,  
  4. OrderDetail.Price,  
  5. [Order].ID,  
  6. [Order].PersonID  
  7. FROM [Order]  
  8. INNER JOIN OrderDetail ON [Order].ID = OrderDetail.OrderID  
  9. FOR XML AUTO,ROOT('Record') 

輸出結(jié)果很猛:

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  

XML結(jié)構(gòu)變了,是變了,MSDN中是這樣解釋滴:

***個(gè)ID引用自O(shè)rder表,故創(chuàng)建Order節(jié)點(diǎn),PersonID同樣引用自O(shè)rder表,***步已經(jīng)創(chuàng)建Order節(jié)點(diǎn),故此處僅為節(jié)點(diǎn)添加PersonID屬性。

接下來(lái)三列OrderID,ProductID,Price引用OrderDetail表,因此在Order節(jié)點(diǎn)下創(chuàng)建OrderDetail子節(jié)點(diǎn) 列的別名顯示為屬性名稱(chēng),沒(méi)有別名使用列名,節(jié)點(diǎn)的名稱(chēng)使用表別名,沒(méi)有別名使用表名。

Order By對(duì)XML結(jié)構(gòu)的影響

再看個(gè)例子,對(duì)Order.PersonID排序:

 
 
 
 
  1. SELECT   
  2. [Order].ID,  
  3. [Order].PersonID,  
  4. OrderDetail.OrderID,  
  5. OrderDetail.ProductID,  
  6. OrderDetail.Price  
  7. FROM [Order]  
  8. INNER JOIN OrderDetail ON [Order].ID = OrderDetail.OrderID  
  9. ORDER BY [Order].PersonId  
  10. FOR XML AUTO,ROOT('Record') 

輸出結(jié)果:

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  

其實(shí)這個(gè)結(jié)果與***個(gè)查詢(xún)結(jié)果是一樣滴,行默認(rèn)順序會(huì)影響XML結(jié)果,排序也會(huì)影響XML結(jié)構(gòu),只要當(dāng)前行與上一行數(shù)據(jù)可以合并時(shí),就會(huì)影響XML結(jié)構(gòu),再來(lái)看一個(gè)排序影響XML結(jié)構(gòu)的例子,這次以O(shè)rderDetail.ProductID排序,直接看結(jié)果:

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  

以上就是FOR XML AUTO的應(yīng)用的相關(guān)知識(shí),本文我們就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!


分享題目:SQLServer數(shù)據(jù)庫(kù)中FORXMLAUTO的使用詳解續(xù)
地址分享:http://m.5511xx.com/article/djhdcco.html