SQL 函數,關鍵詞總結

有時SQL中不常用的函數, 關鍵詞, 判式會使查詢更簡潔, 更有效率.

1. STUFF

    stuff(<string1>,<starting position>, <Length to delete from string1>, <string 2>)

   

2. INTERSECT

    生成只包括該運算符連接的兩個結果集都有的行組成的結果集(來自結果A且在結果B中重複的).

 

3. EXCEPT

    來自結果A且在結果B中不重複的.

 

4. UNION/UNION ALL/UNION CORRESPONDING

 

5. EXTRACT

    從DateTime值中提取單個域

    Extract(<dateTime field> from <datetime value>)

    dateTime field: Day, year, month, hour, minute, second, timezone_hour

    datetime value: 具體值, 列, 或帶有datetime類型值的表達式.

 

6. CURRENT_DATE/CURRENT_TIME/CURRENT_TIMESTAMP/GETDATE()

    CURRENT_TIMESTAMP 等價於 GETDATE();

    print current_date 等價於 print convert(varchar,getdate(), 101)   

<style> format
(blank),0 mmm dd yyyy hh:mmAM/PM
1 mm/dd/yy
2 yy.mm.dd
3 dd/mm/yy
4 dd.mm.yy
5 dd-mm-yy
6 dd mmm yy
7 mmm dd, yy
8 hh:mm:ss
9 mmm dd yyyy hh:mm:ss:sssAM/PM
10 mm-dd-yy
11 yy/dd/mm
12 yymmdd
13 dd mmm yyyy hh:mm:ss:sss
14 hh:mm:ss:sss
20 yyyy-dd-mm hh:mm:ss
21 yyyy-dd-mm hh:mm:ss:sss

 

7. BETWEEN

    <test expression> between <low expression> and <high expression>

    等價於: <test expression> >= <low expression> and <test expression> <= <high expression>

 


比較

單說in和exsist, in的效率較差。
關於EXISTS與IN的區別:
EXISTS檢查是否有結果,判斷是否有記錄,返回的是一個布爾型(TRUE/FALSE)。
IN是對結果值進行比較,判斷一個字段是否存在於幾個值的範圍中,所以 EXISTS 比 IN 快。

主要區別是:
exists主要用於片面的,有滿足一個條件的即可,
in主要用於具體的集合操作,有多少滿足條件.

exists是判斷是否存在這樣的記錄,
in是判斷某個字段是否在指定的某個範圍內。
exists快一些。

注意有時不一定的:in適合內外表都很大的情況,exists適合外表結果集很小的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章