我通过在我的存储过程中连接 @whereClause 变量来构建这个 where 条件。在这一点上,我正在使用案例来添加附加值。如果有更好的方法来做到这一点?
SET @whereClause =
( CASE
-- APPType Clinical
WHEN (@ApplicationType = 'Clinical') THEN @whereClause + ' AND vpgl.AppType = Clinical'
-- APPType Patients
WHEN (@ApplicationType = 'Patients') THEN @whereClause + ' AND vpgl.AppType = Patients'
-- APPType Web
WHEN (@ApplicationType = 'Web') THEN @whereClause + ' AND vpgl.AppType = null'
ELSE @whereClause
END
)
我认为这是一种更好、更安全、更自我记录和更可扩展的方法:
如果你真的,真的想使用一个
CASE
表达式(这不是为了控制 flow),你可以说:你可以让它更短: