在下面的查询,nvl可以返回不同的数据类型作为它的参数吗?
select nvl(gender, 'not available') from member
我想查询返回“不可用”时的性别为空。但似乎第二个参数必须是与第一个参数相同的数据类型(在本例中,gender是CHAR(1),但第二个参数是varchar或char(n)而不是CHAR(1)。在主表中更改数据类型? 我使用亚马逊的红移。 我使用NVL声明组也在所以我需要的解决方案要简洁尽可能。
在下面的查询,nvl可以返回不同的数据类型作为它的参数吗?
select nvl(gender, 'not available') from member
我想查询返回“不可用”时的性别为空。但似乎第二个参数必须是与第一个参数相同的数据类型(在本例中,gender是CHAR(1),但第二个参数是varchar或char(n)而不是CHAR(1)。在主表中更改数据类型? 我使用亚马逊的红移。 我使用NVL声明组也在所以我需要的解决方案要简洁尽可能。
这将工作:
先找性别(性别选择会员WHERE .....)
if gender is null
begin
select 'not available' as result
end
else
begin
<-- do your query-->
end
SQL中没有'if'(即使有 - 'gender'来自哪里?这是表中的一列) –
他应该首先查找性别(SELECT性别FROM成员WHERE .....)比运行。如果没有IF,我很抱歉。 – abcool
什么是性别数据类型?什么是错误?您可以将其转换为select中的字符串,而不是更改表中列的类型。 –
这可能很大程度上取决于使用的数据库,请为相关的DBMS添加标签。 –
使用'coalesce()'。它是ANSI标准版本,可用于更多数据库。 –