【发布时间】:2020-03-19 21:22:36
【问题描述】:
我有这段代码,它是存储过程的一部分
INSERT INTO #TempTable
/* A few subqueries, about 100 lines */
WHERE (cartera.ClaSucursal = @pIdSucursal OR @pIdSucursal = -1)
AND (cartera.ClaAsesorActual =
CASE
WHEN @pIdAsesor > 0 THEN @pIdAsesor
WHEN @pIdAsesor = 0 THEN NULL
END
OR @pIdAsesor = -1)
/* Rest of my code, about 200 lines */
SELECT * FROM #TempTable
基本上,我有一个名为@pIdAsesor 的参数,根据它的值可能有三种可能的结果。
-
@pIdAsesor = -1无论 Id 值如何,它都会为我带来所有条目 -
@pIdAsesor = sumId给我带来了所有具有给定 ID 的条目 -
@pIdAsesor = 0这给我带来了所有以 NULL 作为 Id 的条目
结果 1 和 2 完美无缺,但方案 3 并没有带来结果。
【问题讨论】:
标签: sql sql-server select null case