【发布时间】:2022-06-15 21:21:57
【问题描述】:
我正在使用查询来选择表的所有列并用逗号(',')分隔它们,但如果列的值为 null,那么我将使用字符串 'null' 代替价值。
我正在尝试的查询是 -
SELECT CONCAT(NVL(ID,'null'),',',NVL(NAME,'null'),',',NVL(ROLL_NO,'null'))
FROM DUAL
Expected result-
1,john,123
2,josh,null
我打算在 spark 临时表上运行此查询。但在此之前,我尝试在 sql developer 上运行它。 但我得到 ORA-00909 : invalid number of arguments 错误。我在这里找不到哪里出错了。
额外问题(不必回答):有没有办法通过不手动写入列来连接所有列?我知道在 spark.sql 和 oracle 中有一个函数 concat_ws,我们可以在其中使用分隔符,但它也忽略了 null 值,而不是用“null”字符串替换它们,但即使在 concat_ws 中,我也必须手动编写所有列。
【问题讨论】:
标签: sql oracle apache-spark apache-spark-sql