「東西」我有這樣的代碼:由插入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取決於你如何處理查詢結果。 –