字面常量

Palo中的每种数据类型都会对应着一种该类型的Literal。用户可以在SQL语句中指定Literal,比如在select的list中,where从句中以及函数的参数中。

数字字面常量

整型类型(TINYINT, SMALLINT, INT, 和BIGINT)的字面常量是一系列数字,这些数字前可以加些0。

浮点类型(DOUBLE)的字面常量是一系列数字,并且可选加上十进制的点(.字符)。

整型类型在需要时可以根据上下文提升到浮点类型。

在描述字面常量时,可以使用指数符号(e 字符)。例如1e+6 表示10 的6 次方(1 百万)。包含指数符号的字面常量会被识别成浮点类型。

字符串字面常量

字符串字面常量被单引号或者双引号括起来。字符串字面常量也包含其他形式:字符串字面常量为包含单引号的字符串,外面被双引号括起来;字符串字面常量为包含双引号的字符串,外面被单引号括起来。

为了描述字符串字面常量的特殊字符,需要在特殊字符前加入转义字符(\字符)。

  • \t 表示tab键

  • \n 表示换行符

  • \r 表示回车符

  • \b 表示回退符

  • \0 表示ASCII码的空字符(和SQL语言的NULL不同)

  • \Z 表示dos 的文本结束符

  • \%和_用来转义传给LIKE操作符的字符串中的通配符

  • \\防止反斜线符号被解释成转义字符

  • 如果字符串字面常量被单引号或双引号括起来,则反斜线符号可以用来转义该字符串字面常量中出现的单引号或双引号。

  • 如果\后面出现的字符不是上面列举的转移字符,则该字符保持不变,不会被转义。

日期字面常量

Palo会自动将CHAR类型字面常量转成时间类型字面常量。Palo接受的时间类型字面常量的输入格式为成YYYY-MM-DD HH:MM:SS.ssssss,或者只包含日期。其中上述格式中小数点后面的数字(毫秒数)可带可不带。例如,用户可以指定时间类型为‘2010-01-01’,或者'2010-01-01 10:10:10'。