在一个视图中运行两个select语句?

时间:2018-05-17 13:20:25

标签: sql sql-server tsql

我有一些SQL分为两个SELECT语句。第一个SELECT语句将结果插入到临时表中。第二个SELECT语句是COALESCE,它从第一个插入数据的临时表中读取数据。我需要能够一起运行这些(一个接一个),遗憾的是由于我公司使用的旧报告工具,它们无法将这些存储到存储过程中。报告工具必须从VIEW或TABLE中读取。我想把它们放到VIEW中,但是研究过一个视图不能有多个SELECT。关于如何实现这一目标的任何想法和例子?显示SQL的原始帖子/解决方案位于this post

1 个答案:

答案 0 :(得分:2)

临时表选择可以转换为CTE(With子句),第二部分是视图的select查询。

或者你可以用子选项内联它,但取决于可能使其难以维护的复杂性。

CREATE VIEW yourView AS
WITH myFirstSelect(someFields) AS
(
    SELECT somefields FROM sometable
)
SELECT * from myFirstSelect

文档:https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-2017