使用布尔条件作为函数中的位参数

时间:2016-02-11 15:04:06

标签: sql parameters user-defined-functions

我在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万行。

此致

2 个答案:

答案 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