Hive 我想检查列值在配置单元中是否不是小数

Hive 我想检查列值在配置单元中是否不是小数,hive,hiveql,Hive,Hiveql,我有一个列如下的表 S.No Product Quantity 1 Chair 1 2 Table 3 3 Fan 2.4 我想检查一下数量列是否为负数。如果为负,则不应返回该行。 我只需要前两行1和2的结果 请建议我如何在Hive中提出只返回非十进制值的查询这可能不是最有效的方法,但这将完成您的工作 select SNo, Product, Quantity from table_name where Quantity=round(Quantity) and Qu

我有一个列如下的表

S.No Product Quantity
 1  Chair   1
 2  Table   3
 3  Fan     2.4
我想检查一下数量列是否为负数。如果为负,则不应返回该行。
我只需要前两行1和2的结果
请建议我如何在Hive中提出只返回非十进制值的查询这可能不是最有效的方法,但这将完成您的工作

select SNo, Product, Quantity from table_name
where Quantity=round(Quantity)
and Quantity>=0

这可能是选择只有数字(没有小数或负号)的行的另一种方法:

在这里,
“[^0-9]”
检查是否有任何值不是数字。
NOT RLIKE
是双负数,将返回所有行,但包含非数字内容的行除外

要仅对数据集结果的前两行运行此操作,请添加:

WHERE S.No <=2

WHERE S.No你注意到
hive
hiveql
标记了吗?“我只想要结果的前两行1和2”,我改变了答案,假设OP想要测试数据集的前两行,而不仅仅是返回输出的前两行,谢谢,请始终尝试接受对您有帮助的答案,以便其他人能够轻松参考上述问题陈述的解决方案
WHERE S.No <=2