星期一, 7月 13, 2015

[SQL] 衍伸資料表欄位別名

看 MVA 課程時發現的 T-SQL 寫法

以往寫 T-SQL 有用到 Derived Tables 時,都是用下面這個例子的寫法為主,Alias 會寫在 ColumnName 後面,比較直覺
SELECT 
    orderyear, 
    COUNT(DISTINCT custid) AS cust_count
FROM 
    ( 
        SELECT 
            YEAR(orderdate) AS orderyear, -- Alias 寫在 ColumnName 後面
            custid 
        FROM Sales.Orders
    ) AS derived_year
GROUP BY orderyear;
MVA 課程中介紹的寫法,寫在整個 Derived Tables ColumnName 中
SELECT 
    orderyear, 
    COUNT(DISTINCT custid) AS cust_count
FROM 
    ( 
        SELECT 
            YEAR(orderdate),  -- 不在欄位後面取 Alias
            custid
        FROM Sales.Orders
    ) AS derived_year(orderyear, custid) -- 寫在整個 Derived Tables ColumnName 中
GROUP BY orderyear;
原以為是 SQL Server 2012 的新語法 EXEC WITH Result Set 相關,但實際在 2005 上測試也是 OK 的

沒有留言:

張貼留言