Sql 将三个视图合并为一个视图,然后使用FOR XML RAW
我试图像这样连接3个视图,然后输出XMLSql 将三个视图合并为一个视图,然后使用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
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抱歉,我想加入,而不是联合,抱歉混淆了