我有这段代码:
select f.name
from Firms F
where
f.id = @{_firmID}
按插入的ID选择公司名称。但是如果我插入错误的ID(不存在的ID),表返回null。如果id不存在,我需要重写此代码以返回'错误的ID'。 我怎样才能做到这一点?感谢所有回复
答案 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);