簡體   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