数据仓库服务 GAUSSDB(DWS)-概述:TD兼容模式下,空串转换为数值类型的处理

时间:2024-01-26 16:15:25

TD兼容模式下,空串转换为数值类型的处理

  • TD数据库不同于Oracle,Oracle将空串当做NULL进行处理,TD在将空串转换为数值类型的时候,默认将空串转换为0进行处理,因此查询空串会查询到数值为0的数据。同样地,在TD兼容模式下,字符串转换数值的过程中,也会将空串默认转换为相应数值类型的0值进行处理。除此之外,' - '、' + '、' '这些字符串也都会在TD兼容模式下默认转换为0进行处理,但是小数点字符串' . '会报错。例如:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    CREATE TABLE t1(no int,col varchar);
    INSERT INTO t1 values(1,'');
    INSERT INTO t1 values(2,null);
    SELECT * FROM t1 WHERE col is null;
     no | col
    ----+-----
      2 |
    (1 row)
    
    SELECT * FROM t1 WHERE col='';
     no | col
    ----+-----
     1  |
    (1 row)
    
  • MySQL兼容模式下对空串转换为数值类型的处理和TD兼容模式相同。
support.huaweicloud.com/sqlreference-820-dws/dws_06_0076.html