返回'something'而不是null

时间:2013-06-25 15:45:42

标签: sql firebird

我有这段代码:

select f.name
from Firms F
where
f.id = @{_firmID}

按插入的ID选择公司名称。但是如果我插入错误的ID(不存在的ID),表返回null。如果id不存在,我需要重写此代码以返回'错误的ID'。 我怎样才能做到这一点?感谢所有回复

2 个答案:

答案 0 :(得分:1)

未经测试的语法,但你明白了,我希望:

select f.name
from Firms F
where
f.id = @{_firmID}
union
select 'wrong ID' as name
from firms 
where @{_firmID}
not in (select id from firms)

答案 1 :(得分:0)

如果你真的想用SQL而不是在应用程序端,那么使用可选存储过程可能是最简单的方法:

CREATE PROCEDURE GetFirmName(aID INTEGER)
RETURNS(Name VARCHAR(255))
AS
BEGIN
  Name = NULL;
  SELECT Name FROM Firms WHERE id = :aID INTO :Name;
  IF(Name IS NULL)THEN Name = 'wrong ID';
END

然后

SELECT Name FROM GetFirmName(42);