【发布时间】:2016-07-27 18:09:20
【问题描述】:
在下面的查询中,
select NVL(gender, 'not available') from member
当性别为空时,我希望查询返回“不可用”。但似乎第二个参数必须与第一个参数的数据类型相同。(在这个例子中,性别是 CHAR(1),但第二个参数是 VARCHAR 或 CHAR(n) 而不是 CHAR(1)。除了更改主表中的数据类型? 我正在使用 Amazon Redshift。 我也在 group by 中使用 nvl 语句,所以我需要尽可能简洁的解决方案。
【问题讨论】:
-
性别的数据类型是什么?错误是什么?您可以将其转换为 select 中的字符串,而不是更改表中列的类型。
-
这可能取决于使用的 DB,请为相关 DBMS 添加标签。
-
使用
coalesce()。它是 ANSI 标准版本,可用于更多数据库。 -
我也尝试过合并。它在红移中不起作用。
标签: sql amazon-redshift nvl