【发布时间】:2017-07-10 14:40:08
【问题描述】:
在 IF 语句中使用存储过程(或函数)返回作为条件的最佳方法是什么?
可以让我做一些接近此的事情,声明了一个过程/函数“CheckCondition”,它使用 CAST 或作为输出返回真/假 1/0 值
IF CheckCondition 1, 'asfa'
BEGIN
//do something
ELSE
//do something else
END
函数/过程不需要做 INSERT 或 UPDATE,只需要 SELECT,所以我猜一个函数会做。
谢谢
【问题讨论】:
-
有关如何为此使用存储过程,请参阅此答案:stackoverflow.com/a/11965764/1220550。然而,用户定义的函数可能更直观:
IF fn_CheckCondition(1, 'asfa') = 1 BEGIN ...请注意,在 T-SQL 中,布尔变量不存在,因此您必须使用 BIT 或 INT。 -
@PeterB 函数声明中有什么特别之处吗?它如何返回值?
return 1可以吗? -
我建议使用 BIT 数据类型并返回 0 或 1 ...
标签: sql-server tsql