我在sql中有一个标量函数,其bit参数不能为null。我需要在select语句中使用布尔条件而不是位变量,例如:
select
dbo.myFuncyion(t1.field is null)
from
myTable t1
但是在sql中不允许这样做。
我使用过类似isnull(select 1 where t1.field is null,0)
的东西,但我想知道是否有更快的方法(这个函数将被调用超过100万行。
此致
答案 0 :(得分:1)
只需使用CASE WHEN
:
select
dbo.myFuncyion(CASE WHEN t1.field is null THEN 1 ELSE 0 END)
from
myTable t1
答案 1 :(得分:0)
您可以使用CASE
语句来实现同样的目标:
select
dbo.myFuncyion(CASE WHEN (t1.field IS NULL OR t1.field = 0) THEN 1 ELSE 0 END))
from
myTable t1