从Sql Server Express 2005中检索结构化Xml
|
我想从全文搜索索引表中获取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参数在这里没有任何用处,因为它只是语法错误
没有找到相关结果
已邀请:
1 个回复
枫湃揩乾纲
。 这会给你这个错误,
您必须将查询嵌入到这样的select语句中。
如果希望列为XML类型,则需要添加
并使用
,因为
我不知道这是否最终会为您提供所需的输出,但这是
的原因以及您可以采取的措施。