当我在tableA中插入包含空字符串的数据,然后执行
select * from tableA;
我看到空字符串被NULL值代替。
如何保留空字符串值而不是NULL值?
答案 0 :(得分:0)
您应该获得空字符串而不是null。
hive> create temporary table t1 as select '' as c1,
' ' as c2; --- ' ' space
Time taken: 0.145 seconds, Fetched: 1 row(s)
hive> select concat('|',c1, '|', c2, '|') from t1;
OK
|| |
Time taken: 0.319 seconds, Fetched: 1 row(s)
hive> insert into t1 values (' ', ' '); -- multiple spaces
Time taken: 13.6 seconds
hive> select concat('|',c1, '|', c2, '|') from t1;
OK
|| |
| | |
Time taken: 0.136 seconds, Fetched: 2 row(s)
答案 1 :(得分:0)
刚发现它...原因是当在期望字符串的字段中用空值完成插入时,则保留空值,但是当该字段期望字符串以外的其他值时,例如字段期望接收一个整数,然后将空值插入为NULL值。