SQL 函数,关键词总结

来源:互联网 发布:淘宝买家好评率90低吗 编辑:程序博客网 时间:2024/06/05 10:44

有时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),0mmm dd yyyy hh:mmAM/PM1mm/dd/yy2yy.mm.dd3dd/mm/yy4dd.mm.yy5dd-mm-yy6dd mmm yy7mmm dd, yy8hh:mm:ss9mmm dd yyyy hh:mm:ss:sssAM/PM10mm-dd-yy11yy/dd/mm12yymmdd13dd mmm yyyy hh:mm:ss:sss14hh:mm:ss:sss20yyyy-dd-mm hh:mm:ss21yyyy-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适合外表结果集很小的情况。