Sql Server API學習

來源:互聯網
上載者:User

標籤:

Sql Server API學習SqlServer

 

  • 次序函數
    • NTILE
  • 運算式
    • COALESCE
    • IIF
    • CHOOSE

 

次序函數NTILE

文法:

NTILE (integer_expression) OVER ( [ <partition_by_clause> ] < order_by_clause > )

return: bigint
PS:如果總行數不能夠補integer_expression整除,按照 OVER 子句指定的順序,較大的組排在較小的組前面。例如:53分為5組,則前3組為11行,後2組為10行。
將數量為integer_expression的行分為一組,每一組具有各自的編號,組編號從1開始。
A:將行分為組

  1. 1SELECT p.FirstName, p.LastName 
  2. 2 ,NTILE(4) OVER(ORDER BY s.SalesYTD DESC) AS Quartile 
  3. 3 ,CONVERT(nvarchar(20),s.SalesYTD,1) AS SalesYTD 
  4. 4 ,a.PostalCode 
  5. 5FROM Sales.SalesPerson AS s  
  6. 6INNER JOIN Person.Person AS p  
  7. 7 ON s.BusinessEntityID = p.BusinessEntityID 
  8. 8INNER JOIN Person.Address AS a 
  9. 9 on a.AddressID = p.BusinessEntityID 
  10. 10WHERE TerritoryID IS NOT null 

B:使用PARTITION BY劃分結果集

運算式COALESCE

按順序計算變數並返回最先不為NULL的第一個運算式的當前值

COALESCE(expression,.......)

PS:如果所有的值都為NULL,則至少返回一個NULL
COALESCE 運算式是 CASE 運算式的文法捷徑。 即查詢最佳化工具將代碼 COALESCE(expression1,...n) 重寫為以下 CASE 運算式:

  1. 1CASE 
  2. 2 WHEN (expression1 IS NOT NULL) THEN expression1 
  3. 3 WHEN (expression2 IS NOT NULL) THEN expression2 
  4. 4 ... 
  5. 5 ELSE expressionN 
  6. 6END 

簡單範例程式碼:

  1. 1SELECT name, Class, Color, ProductNumber, 
  2. 2 COALESCE(Class,Color,ProductNumber) AS FirstNotNull 
  3. 3FROM Production.Product 
IIF

根據ture和false,計算不同的分支運算式
文法:

IIf(Logical_Expression, Expression1 [HINT ], Expression2 [HINT ])
IIf 函數有三個參數:iif(<條件>, <then 分支>, <else 分支>)

CHOOSE

在 SQL Server 中從值列表返回指定索引處的項。
文法:

CHOOSE ( index, val_1, val_2 [, val_n ] )
參數
index
一個整數運算式,表示其後的項列表的從 1 開始的索引。如果提供的索引值具有 int 之外的數值資料類型,則該值將隱式轉換為整數。 如果索引值超出了值數組的界限,則 CHOOSE 返回 Null。
val_1 … val_n
任何資料類型的逗號分隔的值列表。

樣本:

  1. 1SELECT CHOOSE(2,‘test1‘,‘test2‘) AS result 

Sql Server API學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.