我有一个视图V,它从几个表中选择数据。我还有一个表T,它定义了允许用户查看V中哪种类型的数据。
对于用户来说,如果T中没有数据,这意味着他可以从我的视图V中查看所有内容,但是如果T中有数据,那么我需要限制我的视图V的结果。
所以在我看来,我需要在 T 中执行ifV Left join T
nothing或在TV INNER JOIN T
中执行if 。
但是我不太确定如何编写此查询以获得可能的最佳性能(就服务器执行而言),前提是视图V可能已经是一个不太快执行的查询。我应该首先从 B 中选择所有内容并将其存储在某个变量或临时表中吗?还是可以使用我至今未听说过的巧妙的 SQL 语法轻松完成所有事情?