For XML Path 用法总结?

zc_0101 2009-08-13 09:13:50
For XML Path 用法总结?有的贴一下吧,谢谢!
...全文
1525 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhejianwei123 2010-09-16
  • 打赏
  • 举报
回复
gsq_0912 2010-04-22
  • 打赏
  • 举报
回复
IF OBJECT_ID('A') IS NOT NULL
DROP TABLE A
IF OBJECT_ID('B') IS NOT NULL
DROP TABLE B
go

CREATE TABLE A
(
AID INT,
[NAME] VARCHAR(50)
)
INSERT INTO A
SELECT 1 ,'Tom' UNION ALL
SELECT 2 ,'Jim'

CREATE TABLE B(
BID INT
,[NUMBER] VARCHAR(50)
)
INSERT INTO B
SELECT 1 ,'20' UNION ALL
SELECT 1 ,'30'
GO
select name ,
number=isnull(stuff((select ','+rtrim(number) from b where a.aid=bid for XML path('')),1,1,''),'')
from A
devilidea 2009-10-15
  • 打赏
  • 举报
回复
zc_0101 2009-08-13
  • 打赏
  • 举报
回复
嗯,丛书看过了,理解得不是很透彻~
SQL77 2009-08-13
  • 打赏
  • 举报
回复
DECLARE @hDoc int
EXEC sp_xml_preparedocument @hDoc OUTPUT,
N'<ROOT>
<Customers CustomerID="XYZAA" ContactName="Joe"
CompanyName="Company1">
<Orders CustomerID="XYZAA"
OrderDate="2000-08-25T00:00:00"/>
<Orders CustomerID="XYZAA"
OrderDate="2000-10-03T00:00:00"/>
</Customers>
<Customers CustomerID="XYZBB" ContactName="Steve"
CompanyName="Company2">No Orders yet!
</Customers>
</ROOT>'
-- Use OPENXML to provide rowset consisting of customer data.
INSERT Customers
SELECT *
FROM OPENXML(@hDoc, N'/ROOT/Customers')
WITH Customers
-- Use OPENXML to provide rowset consisting of order data.
INSERT Orders
SELECT *
FROM OPENXML(@hDoc, N'//Orders')
WITH Orders
-- Using OPENXML in a SELECT statement.
SELECT * FROM OPENXML(@hDoc, N'/ROOT/Customers/Orders') with (CustomerID nchar(5) '../@CustomerID', OrderDate datetime)
-- Remove the internal representation of the XML document.
EXEC sp_xml_removedocument @hDoc

不懂的学习
SQL77 2009-08-13
  • 打赏
  • 举报
回复
是啊联机从书
liangCK 2009-08-13
  • 打赏
  • 举报
回复
直接看联机丛书不就有了?
--小F-- 2009-08-13
  • 打赏
  • 举报
回复
PATH模式: 


  (1). SQL语句:





  SELECT EmployeeID "@ID",FirstName "Name/FirstName",LastName "Name/LastName"
  FROM Employees FOR XML PATH ('Employee')
(2). 所生成的XML文件


<Employee ID="1">
<Name>
<FirstName>NancyFirstName>
<LastName>DavolioLastName>
Name>
Employee>
<Employee ID="2">
<Name>
<FirstName>AndrewFirstName>
<LastName>FullerLastName>
Name>
Employee>
<Employee ID="3">
<Name>
<FirstName>JanetFirstName>
<LastName>LeverlingLastName>
Name>
Employee>
<Employee ID="4">
<Name>
<FirstName>MargaretFirstName>
<LastName>PeacockLastName>
Name>
Employee>
<Employee ID="5">
<Name>
<FirstName>StevenFirstName>
<LastName>BuchananLastName>
Name>
Employee>
<Employee ID="6">
<Name>
<FirstName>MichaelFirstName>
<LastName>SuyamaLastName>
Name>
Employee>
<Employee ID="7">
<Name>
<FirstName>RobertFirstName>
<LastName>KingLastName>
Name>
Employee>
<Employee ID="8">
<Name>
<FirstName>LauraFirstName>
<LastName>CallahanLastName>
Name>
Employee>

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧