我的SQL语句中有类似于以下WHERE
子句的内容:
AND (ipdp.UserID!=dbo.fn_userid(ipdp.ItemID) OR dbo.fn_userid(ipdp.ItemID) IS NULL)
但是,我不喜欢dbo.fn_userid
函数如何运行两次。我怎样才能改进这行代码,只需要运行一次?
ipdp.UserID
始终为非NULL整数值
dbo.fn_userid
可以返回NULL或整数值
干杯。
答案 0 :(得分:4)
尝试:
AND ipdp.UserID != ISNULL(dbo.fn_userid(ipdp.ItemID), -1)