• sqlServer杂计


    In与Exists的区别

        这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法。

        Select * from tableA Where exists(Select * From tableB Where tableB.ID=tableA.ID)

        这句相当于:Select * from tableA Where id in (Select ID From tableB)

        对于表tableA的每一条数据,都执行Select * From tableB Where tableB.ID=tableA.ID的存在性判断,如果表tableB中存在表tableA当前行相同的ID,则Exists为真,该行显示,否则不显示。

    • IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况
    • In确定给定的值是否与子查询或列表中的值相匹配
    • Exists指定一个子查询,检测行的存在

    如:

    select  *  from  T_CUSTOMER_INFO c INNER JOIN ACCOUNT a

    ON c.id=a.AC_ID

    where not EXISTS(

      select   ACCOUNT_NO  from  TRADED_LOG 

                                                                             where TRADED_DATE  between  convert(varchar(8),dateadd(mm,-1,getdate()),120) + '01' 

                                                                                                                                       and convert(varchar(10),cast(convert(varchar(8),getdate(),120) + '01' as datetime) - 1,120)

                                                                                                           AND right(ACCOUNT_NO,7)=c.ID)

    SQL Server BETWEEN限制查询数据范围时同时包括了边界值

    使用BETWEEN限制查询数据范围时同时包括了边界值,而使用NOT BETWEEN进行查询时没有包括边界值。
        实际上,使用BETWEEN表达式进行查询的效果完全可以用含有“>=”和“<=”的逻辑表达式来代替,使用NOT BETWEEN进行查询的效果完全可以用含有“>”和“<”的逻辑表达式来代替。

    日期函数:

    上月交易量:

    select  ACCOUNT_NO , sum( LOT )  lot from  TRADED_LOG  where TRADED_DATE  between convert(varchar(8),dateadd(mm,-1,getdate()),120) + '01' and convert(varchar(10),cast(convert(varchar(8),getdate(),120) + '01' as datetime) - 1,120)  group by   ACCOUNT_NO

    SQL Server 分页语句

    http://www.cnblogs.com/szytwo/archive/2012/08/30/2663811.html

    select  top(1) DST_AMOUNT, ACCOUNT_NO  from   CUSTRANS_LOG  WHERE  ACCOUNT_NO = '360677314 '  order by CREATE_DATE  DESC

  • 相关阅读:
    设计模式 -- 桥接模式(Bridge)
    设计模式 -- 单例模式(Singleton)
    设计模式 -- 简单工厂模式
    Nginx服务器的启动控制
    【Vue.js】二、Vue的基础
    【Vue.js】一、Vue介绍和安装使用
    linux常用操作命令
    Redis的学习(一、Redis的一些常用技术)
    Spring的学习(四、Spring事务管理)
    Spring的学习(三、Spring中的AOP)
  • 原文地址:https://www.cnblogs.com/shz365/p/4150562.html
Copyright © 2020-2023  润新知