• SQL 中的设定规则 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON


    SQL 中的设定规则 SET ANSI_NULLS ON 和 SET QUOTED_IDENTIFIER ON

    规则示例:

    USE [SQLTable]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    

    1

    SET ANSI_NULLS ON  //表示对空值(null)进行 等于(=)或不等于(<>)进行判断时,遵从 SQL-92 规则。

    SET ANSI_NULLS OFF   //表示在对空值(null)进行 等于(=)或不等于(<>)比较时,不再遵从SQL-92的规则。

    遵从SQL-92 规则:

    • 在进行条件判断 where column_name = NULL 时,即使是表中字段column_name中包含空值(null),该select查询语句返回的数据仍然是是空的或返回0行。
    • 在进行条件判断 where column_name <> NULL时,即使是表中字段column_name中包含非空值,该select查询语句返回的数据是空的或返回0行。

    不遵从SQL-92 规则:

    • 在进行条件判断 where column_name = null 时,当column_name字段中包含了空值(null),该select查询语句会返回表中column_name 字段值为空(null)的数据行。
    • 在进行条件判断 where column_name <> null 时,当column_name字段中包含了非空值,该select 查询语句会返回表中column_name 字段值不为空的数据行。

    简单点理解:

    • SET ANSI_NULLS ON  //忽略NULL 空/非空 值的判断
    • SET ANSI_NULLS OFF   //开启对空/非空 值(null)的判断,会返回空/非空值的判断,会显示空/不为空 的行数.

    2

    SET QUOTED_IDENTIFIER ON  //表示使用  引用标识符,标识符可以用双引号分隔,但是,文字必须用单引号分隔。

    示例:

     select "name","age" from Table1 where name = '滔Roy'
    或
     select name,age from Table1 where name = '滔Roy' 

    SET QUOTED_IDENTIFIER OFF  //表示标识符不能用双引号分隔,否则标识符会被当做字符串值来返回,不再是字符来返回。而且,文字部分必须用单引号或双引号分隔。

    --标识符是不能用双引号来分隔的,否则标识符就会被当做是字符串来返回
    select "name","age" from Table1 where name = '滔Roy' or name = "双引号"
    
    --OK
    select name,age from Table1 where name = '滔Roy' or name = "双引号"  
    

      

    创建时间:2021.03.04  更新时间:

    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
  • 相关阅读:
    每日vim插件--vim中的文本对象及相关插件
    《android传感器高级编程》译者序
    我在用的mac软件(3)-效率篇
    终端环境之tmux
    我在用的mac软件(2)-终端环境之zsh和z(*nix都适用)
    我在用的mac软件(1)--终端环境之iTerm2
    转:微服务架构的理论基础
    怎么使用阿里云直播服务应用到现在主流直播平台中
    WindowsServer2012显示计算机的方法
    在Windows Server 2012启用或关闭Internet Explorer增强的安全配置
  • 原文地址:https://www.cnblogs.com/guorongtao/p/14479004.html
Copyright © 2020-2023  润新知