create procedure [dbo].[MySproc]
@Value bit = null
as
select columna from tablea where columnb = @Value
如果我将null传递给参数,则不起作用。显然,当我将谓词更改为columnb为null时,它可以正常工作。
如果不使用条件逻辑(if / else),我该怎么做?
更新:我根据@gbn回答
计算出来了where (@Value is null and columnb is null) or (columnb = @Value)
答案 0 :(得分:4)
如果1 = 1,0 = 0或NULL = NULL
,假设你想要为真select columna from tablea
where columnb = @Value OR (columnb IS NULL AND @Value IS NULL)
列中0/1,参数为NULL。通常,这将是“只给我行”
where columnb = ISNULL(@Value, columnb)
你的逻辑没有意义,因为你使用NULL表示某事......