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),0mmm dd yyyy hh:mmAM/PM
1mm/dd/yy
2yy.mm.dd
3dd/mm/yy
4dd.mm.yy
5dd-mm-yy
6dd mmm yy
7mmm dd, yy
8hh:mm:ss
9mmm dd yyyy hh:mm:ss:sssAM/PM
10mm-dd-yy
11yy/dd/mm
12yymmdd
13dd mmm yyyy hh:mm:ss:sss
14hh:mm:ss:sss
20yyyy-dd-mm hh:mm:ss
21yyyy-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适合外表结果集很小的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值