“东西”我有这样的代码:由插入ID公司的返回,而不是空
select f.name
from Firms F
where
f.id = @{_firmID}
代码选择名称。但是如果我插入坏ID(不存在ID),表返回null。例如,如果id不存在,我需要重写此代码以返回“错误的ID”。 我该如何做到这一点?感谢所有回复
“东西”我有这样的代码:由插入ID公司的返回,而不是空
select f.name
from Firms F
where
f.id = @{_firmID}
代码选择名称。但是如果我插入坏ID(不存在ID),表返回null。例如,如果id不存在,我需要重写此代码以返回“错误的ID”。 我该如何做到这一点?感谢所有回复
未经检验的语法,但你的想法,我希望:
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)
工程很棒。谢谢。 – Sk1X1
如果你真的想用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);
我不能在应用程序方面做到这一点。我只对SQL有访问权限。 我只有一种情况下有这个问题,所以存储过程没有必要,但谢谢。 – Sk1X1
查询本身没有返回null,它根本不返回任何行。你得到null取决于你如何处理查询结果。 –