可以nvl返回不同的数据类型作为其参数?

时间:2016-07-27 18:09:21

标签: sql amazon-redshift nvl

在以下查询中,

select nvl(gender, 'not available') from member

我希望当gender为null时,查询返回'Not Available'。但似乎第二个参数必须与第一个参数是相同的数据类型。(在这个例子中,性别是CHAR(1),但第二个参数是varchar或char(n)而不是CHAR(1)。除此之外是否有任何解决方案更改主表中的数据类型? 我正在使用Amazon Redshift。 我也在组中使用nvl语句,所以我需要解决方案尽可能简洁。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用案例

select case gender when is null then 'not available' else gender 
from my_table 

答案 1 :(得分:-1)

这将有效:

首先找到性别(SELECT gender FROM member WHERE .....)

if gender is null
begin
select 'not available' as result
end
else
begin
<-- do your query-->
end