繁体   English   中英

在SQL SELECT语句的功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM