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

时间:2024-12-06 15:12:40

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
    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-910-dws/dws_06_0076.html