我想從下面的全文搜索索引表中獲得xml輸出。但我的代碼產生近工會 我的代碼不正確的語法從Sql Server Express 2005中檢索結構化的XML
SELECT
Table1.Name 'Table1/Name',
Table1.Email 'Table1/Email',
( SELECT
Table2.Address 'Address',
Table2.Phone 'Phone',
FROM Details Table2
INNER JOIN Regd Table3 ON Table3.Code = Table2.Code
AND (Table3.SubCode = xml.SubCode) AND (Table1.Id = Table3.Id)
FOR XML PATH ('Details'),Type) as 'Table1',
FROM Users Table1
INNER JOIN CONTAINSTABLE(Users,[Name], @SearchKeys) AS KEY_TBL ON Id = KEY_TBL.[KEY]
INNER JOIN Regd Table3 ON Table3.Id = Table1.Id,
OPENXML (@idoc,'/Request/List',2)
WITH (SubCode NVARCHAR(20)) as xml
WHERE (xml.SubCode = '' or Table3.SubCode = xml.SubCode) AND (Table3.Id = Table1.Id)
FOR XML PATH ('List')
UNION
SELECT
SELECT
Table1.Name 'Table1/Name',
Table1.Email 'Table1/Email',
( SELECT
Table2.Address 'Address',
Table2.Phone 'Phone',
FROM Details Table2
INNER JOIN Regd Table3 ON Table3.Code = Table2.Code
AND (Table3.SubCode = xml.SubCode) AND (Table1.Id = Table3.Id)
FOR XML PATH ('Details'),Type) as 'Table1',
FROM Users Table1
INNER JOIN CONTAINSTABLE(Users,[Email], @SearchKeys) AS KEY_TBL ON Id = KEY_TBL.[KEY]
INNER JOIN Regd Table3 ON Table3.Id = Table1.Id,
OPENXML (@idoc,'/Request/List',2)
WITH (SubCode NVARCHAR(20)) as xml
WHERE (xml.SubCode = '' or Table3.SubCode = xml.SubCode) AND (Table3.Id = Table1.Id)
FOR XML PATH ('List')
這裏出來把我預計將有
<List>
<Table1>
<Name></Name>
<Email></Email>
<Details>
<Address></Address>
<Phone></Phone>
</Details>
</Table1>
</List>
我想請求XML參數不會有任何用處的這裏,因爲它是隻是一個語法錯誤
你可以**解釋一下你想做什麼?你只是向我們扔了一個龐大複雜的SQL語句,沒有背景,沒有關於涉及的表的信息,它們的結構,它們的數據等。是你在兩個地方使用的@ idoc ......這些數據是如何填充的?你可能**可以將這個簡化爲一個'SELECT',而現在就省略'UNION'部分!?!? – 2011-04-19 12:20:57