HiveQL 相当于 MySQL 的 TRUNCATE()?
Posted
技术标签:
【中文标题】HiveQL 相当于 MySQL 的 TRUNCATE()?【英文标题】:HiveQL equivalent of MySQL's TRUNCATE()? 【发布时间】:2020-02-07 20:49:48 【问题描述】:什么是 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
【问题讨论】:
你可以试试split
或substring_index
:***.com/questions/46180835/…
【参考方案1】:
可能有点复杂,但是:
floor(2.465 * 10) / 10
【讨论】:
【参考方案2】:使用 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)
【讨论】:
以上是关于HiveQL 相当于 MySQL 的 TRUNCATE()?的主要内容,如果未能解决你的问题,请参考以下文章