zoukankan      html  css  js  c++  java
  • mssql sqlserver in 关键字在值为null的应用举例

    转自:http://www.maomao365.com/?p=6873

    摘要:
    下文通过案例分析in 关键字在值为null的应用举例,
    分析出not in关键字在null值产生的异常信息
    如下所示:

    CREATE TABLE testA(keyId INT)
    CREATE TABLE testB(keyId INT)
    GO
    INSERT INTO testA(keyId) VALUES (1)
    INSERT INTO testA(keyId) VALUES (2)
    INSERT INTO testA(keyId) VALUES (3)
    GO
    INSERT INTO testB(keyId) VALUES (1)
    INSERT INTO testB(keyId) VALUES (2)
    INSERT INTO testB(keyId) VALUES (4)
    INSERT INTO testB(keyId) VALUES (NULL)
    GO
     SELECT * FROM testA WHERE keyId IN (SELECT keyId FROM testB)
    -----输出------
    /*
    keyId
    1
    2
    */
     SELECT * FROM testA WHERE keyId not IN (SELECT keyId FROM testB)
    ------无输出记录-----
    /*
    keyId
    */
    INSERT INTO testA VALUES (NULL) ---在testA表中插入空值
    SELECT * FROM testA WHERE EXISTS(
        SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
    )
    ----输出----
    /*
    keyId
    1
    2
    */
    SELECT * FROM testA WHERE not  EXISTS(
        SELECT null  FROM testB WHERE testA.keyId=testB.keyId    
    )
    /*
    keyId
    3
    NULL
    */
    SELECT * FROM testA WHERE testA.keyId NOT in (
        SELECT testB.keyId FROM testB WHERE testB.keyId IS NOT NULL    
    )
    
    drop table testA
    drop table testB

    通过以上测试,我们可以看出not in 查询关键字如果子表中存在空值,则无法查询出任何记录,会导致异常产生,
    需使用not exists获取相应的空值信息

  • 相关阅读:
    .net中AjaxPro的简单使用
    关于 Activity 中 startActivityForResult 和 onActivityResult
    产品经理值得读的12本书
    存储过程中使用事务与try catch
    扁平化数据解构转化成树形结构
    JavaScript编程精解
    泛型
    OATS:Orthogonal Array Testing Strategy
    等价类划分
    C# homework
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/9401810.html
Copyright © 2011-2022 走看看