CREATE VIEW View1
AS
SELECT Col1,
Col2,
dbo.fn1(col2) as Col3
FROM TestTable
/*
--Instead of writing below query I created a new View View2
SELECT Col1,
Col2,
dbo.fn1(col2) as Col3
dbo.fn2(dbo.fn1(col2)) as Col4
FROM TestTable
*/
CREATE VIEW View2
AS
SELECT Col1,
Col2,
Col3,
dbo.fn3(col3) as Col4
FROM TestTable
我有一个像上面这样的查询。我有一列是 fn1 的输出。我想将该输出用于其他函数 fn2。在那种情况下,我不能直接在 fn2 中使用 col3,所以我拆分了两个函数并查看如下。我想知道我是否朝着正确的方向前进,我正在做的事情是正确的还是有更好的方法来做到这一点?在 View1 的注释部分中,函数 fn1 会调用两次吗?还是 SQL Server 会负责优化它?