字符类型
名称 |
描述 |
---|---|
VARCHAR(n) |
变长字符串,n指字节长度。 |
CHAR(n) |
定长字符串,不足补空格。n是指字节长度,如不带精度n,默认为1。 |
VARBINARY |
变长二进制数据。需要带上前缀X,如:X'65683F',暂不支持指定长度的二进制字符串。 |
JSON |
取值可以是a JSON object、a JSON array、a JSON number、a JSON string、true、false or null。 |
STRING |
兼容impala的String,底层是varchar。 |
BINARY |
兼容hive的Binary,底层实现为varbinary。 |
- SQL表达式中,支持简单的字符表达式,也支持Unicode方式,一个Unicode字符串是以U&为固定前缀,以4位数值表示的Unicode前需要加转义符。
-- 字符表达式 select 'hello,winter!'; _col0 ------------------ hello,winter! (1 row) -- Unicode 表达式 select U&'Hello winter \2603 !'; _col0 ------------------ Hello winter ☃ ! (1 row) -- 自定义转义符 select U&'Hello winter #2603 !' UESCAPE '#'; _col0 ------------------ Hello winter ☃ ! (1 row)
- VARBINARY与BINARY。
-- 创建VARBINARY类型或BINARY类型的表 create table binary_tb(col1 BINARY); -- 插入数据 INSERT INTO binary_tb values (X'63683F'); --查询数据 select * from binary_tb ; -- 63 68 3f
- 在做CHAR 数值比较的时候,在对两个仅尾部空格数不同的CHAR进行比较时,会认为它们是相等的。
SELECT CAST('FO' AS CHAR(4)) = CAST('FO ' AS CHAR(5)); _col0 ------- true (1 row)