在以下查询中,
select NVL(gender, 'not available') from member
当性别为空时,我希望查询返回“不可用”。但似乎第二个参数必须与第一个参数的数据类型相同。(在这个例子中,性别是 CHAR(1),但第二个参数是 VARCHAR 或 CHAR(n) 而不是 CHAR(1)。除了更改主表中的数据类型?我正在使用 Amazon Redshift。我也在 group by 中使用 nvl 语句,因此我需要尽可能简洁的解决方案。
在以下查询中,
select NVL(gender, 'not available') from member
当性别为空时,我希望查询返回“不可用”。但似乎第二个参数必须与第一个参数的数据类型相同。(在这个例子中,性别是 CHAR(1),但第二个参数是 VARCHAR 或 CHAR(n) 而不是 CHAR(1)。除了更改主表中的数据类型?我正在使用 Amazon Redshift。我也在 group by 中使用 nvl 语句,因此我需要尽可能简洁的解决方案。
你可以试试case
select case gender when is null then 'not available' else gender
from my_table
这将起作用:
首先找到性别(SELECT gender FROM member WHERE .....)
if gender is null
begin
select 'not available' as result
end
else
begin
<-- do your query-->
end