Sql 如何查看退货记录

Sql 如何查看退货记录,sql,database,view,Sql,Database,View,我有sql视图,我从视图中获取如下值 从MyView中选择*其中日期>任意日期 我的问题: 这个where子句何时执行?一旦所有记录按视图返回?您实际要做的是,告诉数据库从其记录中选择一些日期大于某个特定日期的数据,因此它只会从最后一个命令开始执行,我只选择日期大于特定日期的数据视图有点像其他语言中的宏,它们实际上是一个“片段”,可以插入到更大的查询中 这个较大的查询作为一个整体进行了优化1。与提交的查询文本中显式编写的表引用、谓词等来自任何视图无关 因此,如果在视图中有一个WHERE子句,并且

我有sql视图,我从视图中获取如下值

从MyView中选择*其中日期>任意日期

我的问题:
这个where子句何时执行?一旦所有记录按视图返回?

您实际要做的是,告诉数据库从其记录中选择一些日期大于某个特定日期的数据,因此它只会从最后一个命令开始执行,我只选择日期大于特定日期的数据视图有点像其他语言中的宏,它们实际上是一个“片段”,可以插入到更大的查询中

这个较大的查询作为一个整体进行了优化1。与提交的查询文本中显式编写的表引用、谓词等来自任何视图无关

因此,如果在视图中有一个
WHERE
子句,并且在查询视图时应用了一个
WHERE
子句,那么这两个子句被认为是相等的。两种方法都不保证在另一种方法之前或之后进行评估2


1无需使用具体化视图的功能,在这种情况下,视图“结果”数据与对视图的任何查询分开存储和更新。SQL数据库产品之间的具体细节各不相同,例如是否支持此类功能、如何维护等


2按照SQL的一般原则,您告诉系统您想要什么,而不是如何做。只要逻辑上一致,就由优化器决定操作的顺序。

查询的执行计划回答您的问题。然后,如果我在视图中有where条件,我不理解,也不完全同意你的观点,但我刚刚将该视图转换为表值函数,并将参数传递给它。现在where子句在视图中,性能更好了,但我不知道为什么。@Faisal-如果您说的是SQL Server的表值函数,那么内联TVF(如上所述,它的作用类似于视图,并作为包含查询的一部分进行了优化)和多语句TVF之间有一个重要的区别(好吧,它们不是,并且经过优化并单独运行)