zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Working with macro signatures
    Reset and Clear Recent Items and Frequent Places in Windows 10
    git分支演示
    The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.
    Build website project by roslyn through devenv.com
    Configure environment variables for different tools in jenkins
    NUnit Console Command Line
    Code Coverage and Unit Test in SonarQube
    头脑王者 物理化学生物
    头脑王者 常识,饮食
  • 原文地址:https://www.cnblogs.com/shz365/p/4150562.html
Copyright © 2011-2022 走看看