【发布时间】:2015-01-02 12:03:33
【问题描述】:
我在这个网站上搜索了很长时间,并在这个网络上遇到了几个类似的问题,但无法解决我的问题。我有一个存储过程,其中有一个参数 SP_BRANCH_ID,我想要一个情况,如果它为 null,则检索我的表中的 fkBranchId = null,否则在 Sp_branch_id 中指定的那些。
PROCEDURE USP_GET_TAX_RATES_BY_ID(SP_CURSOR OUT T_CURSOR,SP_BRANCH_ID IN NUMBER)
IS
BEGIN
OPEN SP_CURSOR FOR
SELECT "TaxRates".* from "TaxRates" where "IsDeleted" = 'N' AND "fkBranchId" =(
case when SP_BRANCH_ID is null then null else (SP_BRANCH_ID) end );
END USP_GET_TAX_RATES_BY_ID;
【问题讨论】:
-
我们可以借助 nvl 本身来做到这一点,例如:nvl(sp_branch_id,null)。为什么这里需要案例?
-
因为从前端如果我没有选择任何分支,null 将进入 db
-
没关系...检查空 NVL 的存在就足够了。您是否尝试在 where 子句中使用 nvl 的帮助?
-
是的,它没有检索到任何东西
-
@Sana,NULL 永远不等于任何东西,也不等于 NULL。它具有三重价值。