视图的替代方案?

Abs*_*Abs 3 t-sql sql-server

我刚刚读这篇文章,发现了这个:

筛选器:删除 WHERE 子句中的任何函数,不在Transact-SQL 代码中包含视图,可能需要其他索引。

如果我不使用视图,有哪些替代方案?我的意思是,在我的情况下,我想从表中选择一些数据,然后使用其他一些选择查询来处理第一个选择查询中的数据子集?

我怎样才能有效地做到这一点?

谢谢大家

Dan*_*olz 5

在某些情况下,存储过程和临时表是一个不错的选择,有时甚至是最好的方法。

但有时,你可以这样做:

SELECT *
FROM (SELECT IdC, Name FROM Customer WHERE ....)
Run Code Online (Sandbox Code Playgroud)

也就是说,您在较大查询的 FROM 部分中编写一个查询。一开始我不喜欢这样,但随着时间的推移,我意识到一些问题可以毫不费力地解决。

HTH(希望这有帮助)!