mysql - 从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格

标签 mysql hive apache-spark-sql

我试图找出下面哪一个更好,同时从源表中选择数据到目标表,以便所有 NULL 都被 '' 替换,并且字符串中没有空格。有什么区别还是两者相同

TRIM(NVL(col1,''))

或者:

NVL(TRIM(col1),'')

最佳答案

这两个表达式在功能上是等效的。

表达式TRIM(NVL(col1,'')):

  • col1 包含空格时,NVL 返回原样,并且外部 trim 删除空格
  • col1NULL 时,NVL 返回 '',其中 trim返回不变

表达式NVL(TRIM(col1),''):

  • col1 包含空格时,TRIM 会删除它们,并且外部 NVL 保持结果不变
  • col1NULL时,TRIM返回NULLNVL变成进入 ''

关于mysql - 从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513918/

相关文章:

hadoop - 更改 Hive 数据库位置

pyspark - 错误 : TimestampType can not accept object while creating a Spark dataframe from a list

apache-spark - Apache Spark 统计数据集合..

scala - 为什么 Spark 应用程序以 "ClassNotFoundException: Failed to find data source: jdbc"作为带有 sbt 程序集的 uber-jar 失败?

mysql - MySQL 和 MS SQL 语言之间的主要区别是什么?

mysql - 在mysql查询中使用 'LIKE IN'

php - 如何使用 jQuery、PHP 和 MySQL 加载 JSON 数据

hadoop - 在 pig 级别将空值作为别名处理

MYSQL LOAD DATA INFILE Syntax Error - 哪里错了?

java - 如何附加ORC文件