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

use boolean condition as a bit parameter in function

我在 sql 中有一个标量函数,其位参数不能为空。我需要在 select 语句中使用布尔条件而不是位变量,例如:

select 
    dbo.myFuncyion(t1.field is null)
from 
    myTable t1

但这在sql中是不允许的。 我用过类似 isnull(select 1 where t1.field is null,0) 的东西,但我想知道是否有更快的方法(这个函数将被调用超过 100 万行。

此致

您可以使用 CASE 语句来实现相同的目的:

    select 
    dbo.myFuncyion(CASE WHEN (t1.field IS NULL OR t1.field = 0) THEN 1 ELSE 0 END))
from 
    myTable t1

只需使用CASE WHEN:

select 
    dbo.myFuncyion(CASE WHEN t1.field is null THEN 1 ELSE 0 END)
from 
    myTable t1