我正在尝试加入 3 个这样的视图,然后输出 XML,
view4 equal (SELECT *
FROM view1
Join
SELECT *
FROM view2
Join
SELECT *
FROM view3)
FOR XML RAW;
先生,这个查询有什么问题吗?正如它所说的错误语法
我正在尝试加入 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 查询,就像联合示例一样。