首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 2000 XML 查詢實戰:FOR XML AUTO/RAW/EXPLICIT 完全指南

     編輯:MySQL 資料庫相關知識

SQL Server 2000 透過 FOR XML 子句可直接將查詢結果輸出為 XML,語法簡潔:

SELECT  FROM  WHERE 
FOR XML AUTO | RAW | EXPLICIT [, XMLDATA] [, ELEMENTS] [, BINARY BASE64]

以下以 Northwind 資料庫示範各模式。

AUTO 模式:最常用,自動依資料表關聯產生階層 XML

單表查詢

SELECT CategoryID, CategoryName FROM Categories WHERE CategoryID < 3 FOR XML AUTO
-- 
-- 

可用別名改變元素名稱:

SELECT CategoryID AS ID, CategoryName, GETDATE() AS CurrDate FROM Categories MyTable WHERE CategoryID < 3 FOR XML AUTO
-- 

連接查詢(父表欄位必須排在子表之前)

SELECT Categories.CategoryID, Categories.CategoryName, ProductID, ProductName
FROM Categories JOIN Products ON Categories.CategoryID = Products.CategoryID
WHERE Categories.CategoryID < 3 AND ProductID < 5 FOR XML AUTO
-- 

ELEMENTS 選項:改用元素而非屬性輸出

SELECT CategoryID, CategoryName FROM Categories WHERE CategoryID < 3 FOR XML AUTO, ELEMENTS
-- 1Beverages

RAW 模式:扁平化輸出,每列一個 元素

SELECT CategoryID, CategoryName FROM Categories WHERE CategoryID < 3 FOR XML RAW
-- 
-- 

RAW 模式不支援 ELEMENTS,連接查詢會產生重複父資料行。

二進位資料處理

預設輸出 XPath 參考:

SELECT CategoryID, Picture FROM Categories WHERE CategoryID = 1 FOR XML AUTO
-- 

適用場景

需直接由資料庫產生 XML 供前端或整合系統使用時,FOR XML 比中介層轉換更高效簡潔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved