在函数中使用布尔条件作为位参数
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
我在 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