与MySQL的TRUNCATE()
的HiveQL等效是什么?
在MySQL中:
mysql> SELECT TRUNCATE(2.465, 1);
+-------------------+
| TRUNCATE(2.465,1) |
+-------------------+
| 2.4 |
+-------------------+
我只知道HiveQL的ROUND()
,但是我不希望发生任何舍入。
参考:https://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php
也许有点令人费解,但是:
floor(2.465 * 10) / 10
使用regexp_extract:
select regexp_extract(2.456,'\\d+\\.?\\d?',0)
结果:
2.4
\\d+
表示一个或多个数字,\\.?
表示零或一个点,\\d?
表示零或一位数字
您可能想在正则表达式的开头也添加-
符号:-?
结果为字符串类型。您可以根据需要将其转换为浮动:
select cast(regexp_extract(2.456,'\\d+\\.?\\d?',0) as float)