是错误的
','
附近的语法不正确
当我选择使用case语句时,plz帮我谢谢!!!!
if statement:
declare @module nvarchar(max)='tenant'
if (@module='tenancy')
select 'All'
UNION
select distinct affect_table from sys_log where affect_table in ('contract','rent_free','dn_override')
陈述时的情况:
select 'All'
UNION
select distinct affect_table from sys_log where affect_table in (case when @module='tenant' THEN ('contract','rent_free','dn_override'))
答案 0 :(得分:0)
看起来你不需要CASE
,只是简单的逻辑:
select distinct affect_table from sys_log
where
(affect_table in ('contract','rent_free','dn_override')
and
@module = 'tenant')
至于为什么你的尝试不起作用,那是因为CASE
是表达式 - 它必须返回一个标量值。不是一组价值观。也不是清单。或者你决定的任何其他内容('contract','rent_free','dn_override')
本身就是一个实例。