将case语句转换为where条件

时间:2016-01-29 21:44:21

标签: amazon-redshift

我正在尝试转换此案例陈述:

(CASE UPPER(dc.source_name) WHEN 'DART' THEN dc.ad_campaign_id ELSE dc.cfid END) AS rodeo_order_id

进入where子句中的条件。

感谢任何帮助!

谢谢, 小号

2 个答案:

答案 0 :(得分:1)

这是不可能的。 Select子句中的Case-Expression决定所有返回行的返回列的内容,而where子句定义返回哪些行。

你必须更好地解释你有什么问题才能得到答案。

答案 1 :(得分:0)

我必须承认我不明白需要这个,但这样的事情可能是解决方案(假设ad_campaign_idcfid属于同一类型):

select dc1.ad_campaign_id
from <table> dc1
where UPPER(dc.source_name) = 'DART'
UNION
select dc2.cfid
from <table> dc2
where UPPER(dc.source_name) != 'DART'