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适合外表结果集很小的情况。

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