1

我有这个代码:

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

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

4

2 回答 2

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)
于 2013-06-25T15:53:29.803 回答
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);
于 2013-06-25T15:59:33.667 回答