2014-09-06 46 views
0

几个星期前,我做了一个关于这个相同的查询问题,并得到了可以在这里看到了很大的反响:A better way to modify this query so the subquery will be more specific?如何修改此子查询更具体

它的伟大工程,但后来我遇到了另一个要求现在看起来更加困难。有广告区域应该允许多种尺寸。例如,某个名称为“b”的区域应该可以允许728x90的广告或300x250的广告。如果我试图通过增加这个区域有两种不同尺寸修改子查询两次,因为这样的:

select 'b' as zone_name, 728 as width union all 
select 'b' as zone_name, 300 as width 

那么数据库将返回他们两个,这是不好的。我不能使用宽度可能为728或更小的条件,因为可能会返回468x60的广告,这也不好。

在理论上,沿

select 'b' as zone_name, (728 or 300) as width union all 

线的溶液将是一种理想的一个。但我认为这种行为不能被模拟。

任何想法赞赏。

+0

为什么不是好为DB返回两者兼而有之?这不是你需要的吗? – FuzzyTree 2014-09-06 05:33:04

回答

0

你可以尝试:

select b as name, case when b = 728 then '728' else '300' end as width 
+0

这是一个答案或建议? – jww 2014-09-06 07:39:09