[英]Function in SQL Select Statement
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会负责优化呢?
你可以做到这一点...
SELECT
Col1,
Col2,
col3,
dbo.fn2(col3) AS Col4
FROM
(
SELECT
Col1,
Col2,
dbo.fn1(col2) as Col3
FROM
TestTable
) foo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.