zoukankan      html  css  js  c++  java
  • Access 2003 中 null 和 '' 空字符串的奇怪问题

     

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 

     

     

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

     

     

    最近系统运行中发现Access 2003 版本中对待 Null ‘’ (空字符)奇怪问题,重现步骤:

    1、创建表tabTest

    2、使用设计视图添加两个字段 ID col1

    名称

    类型

    长度

    说明

    ID

    Number

     

     

    主键,自增

    Col1

    char

    1

             

     

    3、使用sql 添加如下数据

    -- col1 字段设置为 null

    INSERTINTO tabtest (id, col1) VALUES(1, NULL);

    -- col1 字段设置为 ‘’

    INSERTINTO tabtest (id, col1) VALUES(2, '');

    -- col1 字段设置为 ‘a’

    INSERTINTO tabtest (id, col1) VALUES(3, 'a');

     

    4、重新建立查询请求,通过 sql 添加新字段 col2

    -- 添加新列col2

    ALTERTABLE tabTest ADDCOLUMN col2 CHAR(1);

     

    5、使用如下sql 再次向 tabTest 添加新数据

    -- col1col2 字段设置为 null

    INSERTINTO tabtest(id, col1, col2) VALUES(4, NULL, NULL);

    -- col1col2 字段设置为 ‘’

    INSERTINTO tabtest(id, col1, col2) VALUES(5, '', '');    

    -- col1col2 字段设置为 ‘a’

    INSERTINTO tabtest(id, col1, col2) VALUES(6, 'a', 'a');  

     

    6、打开 tabTest 检查 Id 5 的数据。神奇的事情发生了。

    col1 字段为长度为0 的空字符串,而 col2 为长度为1 的字符

     

     

     

    问题:

    Q1、为何 ID 2 col1 字段 col2 字段都是长度为 0 的空字符,

            ID 5 col1 字段 col2 字段长度分别为 0, 1 的空字符,

    运行如下sql 得到如下结果:

    SELECTid, len(col1) AS col1_长度, len(col2) AS col2_长度

      FROM tabtest

     WHEREidIN (2, 5);

     

     

     

    Q2、通过如下sql 却能得到ID 5 的记录

    SELECT *

      FROM tabtest

     WHERE col1 = ''

       AND col2 = '';

     

     

     

     

  • 相关阅读:
    Assigning to 'id<UINavigationControllerDelegate,UIImagePickerControllerDelegate> _Nullable' from incompatible type 'InfchangeVC *const __strong'
    yum源 epel源 no package available 更换国内yum源
    zabbix安装 报错 socket '/var/lib/mysql/mysql.sock' (13)]
    一步一步超级详细的zabbix安装教程
    二进制、八进制、十进制与十六进制
    Linux面试题2
    uniq命令
    tr命令
    Linux面试题
    Ubuntu 14.04更换内核
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2237514.html
Copyright © 2011-2022 走看看