我想在where子句中执行特定任务,只有当源像“GOLD%”,然后SOURCE_SUB_CATEGORY像任何('WHITE%','YELLOW%')。
SELECT t1,t2, t3 from table where <other conditions> and case when SOURCE="GOLD%" then SOURCE_SUB_CATEGORY like any ('WHITE%','YELLOW%') end group by 1,2,3.
这会抛出错误 - “语法错误,在'SOURCE_SUB_CATEGORY'这个词之间预期类似'END'关键字 '喜欢'关键字“。 因此,我所寻找的只是在源是黄金然后是额外的条件时执行,只有当source_sub_category像任何白色%或黄色%时才选择。我想我不应该在这里使用案例陈述我准备使用任何替代方案来执行此任务。
答案 0 :(得分:1)
首先,SOURCE="GOLD%"
无效。您需要SOURCE LIKE 'GOLD%'
。
要处理你的where语句,我会使用类似的东西:
where...
and (
(SOURCE LIKE 'GOLD%' and sub_source_category like any('WHITE%','YELLOW%'))
OR SOURCE NOT LIKE 'GOLD%')