1、hivesql没有update、insert into类的更新表或插入表的操作。
2、hiveSQL特殊字符拼接问题,如分号要先进行八进制的ASCII码转义。
MySQL:select concat(key,concat(';',key)) from dual;
hivesql:select concat(key,concat('\073',key)) from dual;
3、hivesql不支持等值连接。
MySQL:select * from dual a,dual b where a.key = b.key;
hivesql:select * from dual a join dual b on a.key = b.key;
4、空值判断:MySQL中null表示空值,HiveQL中String类型的字段若是空(empty)字符串, 即长度为0, 那么对它进行IS NULL的判断结果是False。
5、函数使用不同,如分隔字符串:
MySQL:select substring_index("1,2,3",",",1); # 返回结果:1 select substring_index("1,2,3",",",3); # 返回结果:1,2,3
hivesql:select split("1,2,3", ',')[0]; # 返回结果:1 select split("1,2,3", ',')[2]; # 返回结果:3
时间转换函数:
MySQL:select p_id,from_unixtime(p_create_time/1000,'%y-%m-%d') as times from poi where p_parent_id= 4782760
hivesql:select p_id,from_unixtime(p_create_time div 1000,'YYYY-MM-dd HH:mm:ss') as times from poi where p_parent_id= 4782760