相当于MySQL的TRUNCATE()的HiveQL?

问题描述 投票:0回答:2

与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

mysql sql hiveql
2个回答
0
投票

也许有点令人费解,但是:

floor(2.465 * 10) / 10

0
投票

使用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)
© www.soinside.com 2019 - 2024. All rights reserved.