Sql 将三个视图合并为一个视图,然后使用FOR XML RAW

Sql 将三个视图合并为一个视图,然后使用FOR XML RAW,sql,xml,view,sql-server-2000,Sql,Xml,View,Sql Server 2000,我试图像这样连接3个视图,然后输出XML view4 equal (SELECT * FROM view1 Join SELECT * FROM view2 Join SELECT * FROM view3) FOR XML RAW; 先生,这个问题有什么问题吗?正如它所说的错误语法我不理解您的一些代码的含义,但这是一个法律语法的示例: SELECT * FROM view1 UNION SELECT * FR

我试图像这样连接3个视图,然后输出XML

view4 equal (SELECT     *
FROM         view1
Join  
SELECT     *
FROM         view2
Join 
SELECT     *
FROM         view3)

 FOR XML RAW;

先生,这个问题有什么问题吗?正如它所说的错误语法

我不理解您的一些代码的含义,但这是一个法律语法的示例:

SELECT *
FROM view1
UNION 
SELECT *
FROM view2
UNION 
SELECT *
FROM view3
FOR XML RAW;
请注意,每个查询应返回相同数量的列和相同的数据类型

UNION
也是一个隐式不同的操作
UNION ALL
将返回每个查询中的所有行

以下是如何将不同的表/视图放入联合视图的示例:

CREATE VIEW myView AS
SELECT ColA, ColB, ColC
FROM view1 -- Has all the columns
UNION 
SELECT ColA, ColB, cast(ColC as varchar(50))
FROM view2 -- ColC is an int but other views have varchar(50)
UNION 
SELECT ColA, null, ColC
FROM view3 -- Has no ColB
并以这种方式返回XML:

SELECT ColA, ColB, ColC
FROM myView
FOR XML RAW;
正确的语法可能如下所示:

SELECT a.ColA, b.ColB, c.ColC
FROM view1 AS a
    JOIN view2 AS b ON a.SomeID = b.SomeID
    JOIN view3 AS c ON b.SomeOtherID = c.SomeOtherID

您可以创建一个视图并将其作为XML查询,就像union示例一样。

我想将3个视图合并为1个视图,谢谢,我给了它一个go+1 Sir,但每个视图只有几个相同数据类型的公共列Sir:(您需要将它们强制转换/转换为相同的数据类型,并在每个查询中返回相同数量的列。如果该列不存在,您可以将null作为列添加到查询中。哦,我认为最好的办法是创建一个包含所有信息的新视图,Sir抱歉,我想加入,而不是联合,抱歉混淆了