Skip to content

常量表达式

概述

常量表达式用于表示各种类型的常数,对于CHAR、VARCHAR、TINYINT、SMALLINT、INTEGER、BIGINT等数据类型,其常量的表达与其它常见关系数据库的相应类型的常量表达方式一致,具有自身特色的常量表达式如下:

  • 日期及时间常量
  • 字符串常量

日期及时间常量

根据xugu.ini配置文件中的默认日期时间格式(def_timefmt)进行日期时间常量操作:

  • DATE类型常量表达式:如“2006-6-5”
  • DATETIME类型常量表达式:如“2006-6-5 12:32:20”
  • TIME类型常量表达式:如“12:32:20”

字符串常量

虚谷数据库兼容MySQL双引号的使用(需要将兼容性参数compatible_mode设置为MYSQL)。

  • 支持使用英文单引号和英文双引号标识字符串。

    SQL
    --无兼容模式
    SET compatible_mode TO NONE;
    
    SELECT "hello", "'hello'", "''hello''", "hel""lo" FROM DUAL;
    Error: [E10049 L1 C8] 字段变量或函数"hello"不存在
    
    --将compatible_mode设置为MySQL
    SET compatible_mode TO MYSQL; 
    
    SELECT "hello", "'hello'", "''hello''", "hel""lo" FROM DUAL;
    EXPR1 | EXPR2 | EXPR3 | EXPR4 |
    ------------------------------------------------------------------------------
    hello| 'hello'| ''hello''| hel"lo|
  • 查询输出时,支持字符串作为别名(如为两个连续字符串,则进行字符拼接,不作为别名)。

    sql
    --无兼容模式 
    SET compatible_mode TO NONE;
    
    SELECT 1 "id" FROM DUAL;
    id |
    ------------------------------------------------------------------------------
    1 |
    
    SELECT "a" "b" FROM DUAL;
    Error: [E10049 L1 C8] 字段变量或函数"a"不存在
    
    --将compatible_mode设置为MySQL
    SET compatible_mode TO MYSQL; 
    
    SELECT "a" "b" FROM DUAL;
    EXPR1 |
    ------------------------------------------------------------------------------
    ab|