我正在阅读SQL中的视图,我对视图之间的相互作用感到困惑(我知道它们是出于安全原因而使用)和with
子句(用于定义“临时视图”)其定义仅适用于出现with子句的查询“[Database System Concepts 5th ed。])
))。
WITH max_balance(value) AS
SELECT MAX(balance)
FROM account
SELECT account_number
FROM account, max_balance
WHERE account.balance = max_balance.value
答案 0 :(得分:4)
实际上使用视图有几个原因。最常见的两个是:
SELECT
查询存储为对象,并能够将结果集视为表格从你的问题我假设你指的是CTE
s,通常写成:
;WITH CTE AS
(
SELECT Stuff...
FROM Table
WHERE things
)
CTE本质上是一次性视图 - 它只会持续到 NEXT QUERY 。在下一个查询之后,它不再被引用。
CTE主要用于简化复杂的数据集和递归。