用 SQL 命令写入 XML
Write XML with SQL Command
我对 XML 的 SQL 命令有疑问。其实我是新手
我有 2 个 table:
table Customer_BSM
:
id_Cust | Name | Omset | Colour | seq
---------------------------------------------
1001 | Ali | 10 | Black | 1
2001 | Bhudi | 5 | Red | 2
3001 | charlie | 20 | yellow | 3
table address_BSM
:
id_cust | Address | no1 | no2
-----------------------------------
1001 | Jln 1 | 1A | 2A
1001 | Jln 2 | 1B | 2B
2001 | street 1 | S1 | S2
3001 | gang A | AG | BG
现在,我想 select 并使用 sql 命令创建 xml,尤其是 "for xml"。 sql命令怎么写?
结果,大概是这样的
<customer_BSM id="1">
<id_cust>1001<id_cust>
<Name>Ali</Name>
<omset>10</omset>
<colour>black</colour>
<addres_bsm>
<address>jln 1</address>
<no1>1A</no1
<no2>2A</no2>
</addres_bsm>
<addres_bsm>
<address>jln 2</address>
<no1>1B</no1
<no2>2B</no2>
</addres_bsm>
</customer_BSM>
<customer_BSM id="2">
<id_cust>2001<id_cust>
<Name>Bhudi</Name>
<omset>5</omset>
<colour>red</colour>
<addres_bsm>
<address>street 1 </address>
<no1>S1</no1
<no2>S2</no2>
</addres_bsm>
</customer_BSM>
<customer_BSM id="3">
<id_cust>3001<id_cust>
<Name>Charlie</Name>
<omset>20</omset>
<colour>Yellow</colour>
<addres_bsm>
<address>gang A</address>
<no1>AG</no1
<no2>BG</no2>
</addres_bsm>
</customer_BSM>
我使用了这个 SQL 命令,但没有用
SELECT *, (
SELECT *
FROM [address_bsm] A INNER JOIN [customer_bsm] B
ON a.id_cust = b.id_cust
FOR XML PATH ('Address_bsm'))
FROM [customer_bsm]
FOR XML PATH
其实和我的目的不一样
我只能用 MSSQL 进行测试,但 SQL 应该非常相似。
SELECT c.[id_Cust]
,[Name]
,[Omset]
,[Colour]
,[seq]
,(SELECT a.[Address],a.[no1],a.[no2] FROM address_BSM a
WHERE a.id_cust = c.id_cust
FOR XML PATH ('address_bsm'), TYPE)
FROM [dbo].[Customer_BSM] c
FOR XML PATH ('customer_bsm')
我对 XML 的 SQL 命令有疑问。其实我是新手
我有 2 个 table:
table
Customer_BSM
:id_Cust | Name | Omset | Colour | seq --------------------------------------------- 1001 | Ali | 10 | Black | 1 2001 | Bhudi | 5 | Red | 2 3001 | charlie | 20 | yellow | 3
table
address_BSM
:id_cust | Address | no1 | no2 ----------------------------------- 1001 | Jln 1 | 1A | 2A 1001 | Jln 2 | 1B | 2B 2001 | street 1 | S1 | S2 3001 | gang A | AG | BG
现在,我想 select 并使用 sql 命令创建 xml,尤其是 "for xml"。 sql命令怎么写?
结果,大概是这样的
<customer_BSM id="1">
<id_cust>1001<id_cust>
<Name>Ali</Name>
<omset>10</omset>
<colour>black</colour>
<addres_bsm>
<address>jln 1</address>
<no1>1A</no1
<no2>2A</no2>
</addres_bsm>
<addres_bsm>
<address>jln 2</address>
<no1>1B</no1
<no2>2B</no2>
</addres_bsm>
</customer_BSM>
<customer_BSM id="2">
<id_cust>2001<id_cust>
<Name>Bhudi</Name>
<omset>5</omset>
<colour>red</colour>
<addres_bsm>
<address>street 1 </address>
<no1>S1</no1
<no2>S2</no2>
</addres_bsm>
</customer_BSM>
<customer_BSM id="3">
<id_cust>3001<id_cust>
<Name>Charlie</Name>
<omset>20</omset>
<colour>Yellow</colour>
<addres_bsm>
<address>gang A</address>
<no1>AG</no1
<no2>BG</no2>
</addres_bsm>
</customer_BSM>
我使用了这个 SQL 命令,但没有用
SELECT *, (
SELECT *
FROM [address_bsm] A INNER JOIN [customer_bsm] B
ON a.id_cust = b.id_cust
FOR XML PATH ('Address_bsm'))
FROM [customer_bsm]
FOR XML PATH
其实和我的目的不一样
我只能用 MSSQL 进行测试,但 SQL 应该非常相似。
SELECT c.[id_Cust]
,[Name]
,[Omset]
,[Colour]
,[seq]
,(SELECT a.[Address],a.[no1],a.[no2] FROM address_BSM a
WHERE a.id_cust = c.id_cust
FOR XML PATH ('address_bsm'), TYPE)
FROM [dbo].[Customer_BSM] c
FOR XML PATH ('customer_bsm')