2012-12-11 68 views
2

。如果ITEM包含%USED-%(USED-),那么我想使其TIER1Used Restaurant Equipment因此它相应地进行分组。MYSQL IF字段包含这使得其他字段这我在我的表1字段中有一个字段

这是我目前的说法,我如何用IFCASE实现上述目标?

select 
    CT.TIER1, CT.TIER2 
from 
    trx.table1 MT 
     LEFT JOIN 
    trx.table2 CT1 ON MT.ITEM = CT1.ITEM 
     LEFT JOIN 
    trx.table3 CT ON CT1.WEB_NUM = CT.WEBNUMBER 
GROUP BY CT.TIER1 
LIMIT 0 , 15 

电流输出:

TIER1     TIER2 
NULL     NULL 
Business Type   Ice Cream Equipment 
Chinese Food Equipment Ricers 
Concession Equipment Concession Accessories 
Cooking Equipment  Fryers 
Food Preparation  Food Preparation Supplies 
Food Storage   Storage Racks 
Food Warming Equipment Hot Food Wells 

我期望仍有一些NULL层1和层2的,但我希望它也显示等级1为“二手餐饮设备”,与此类似:

TIER1      TIER2 
NULL      NULL 
Used Restaurant Equipment NULL 
Business Type    Ice Cream Equipment 
Chinese Food Equipment  Ricers 
Concession Equipment  Concession 
+0

请添加一些示例数据和预期的结果。 –

+0

已更新,希望这解释更多 – ToddN

+1

@ToddN预期的输出是有帮助的,但生成输出的数据也会有帮助......具体而言,您对“ITEM”有什么价值? –

回答

5

这应该是你在找什么:

SELECT 
     IF (MT.ITEM LIKE '%USED-%', 'Used Restaurant Equipment', CT.TIER1) AS TIER1, 
     CT.TIER2 
    FROM 
     trx.table1 MT 
      LEFT JOIN 
     trx.table2 CT1 ON MT.ITEM = CT1.ITEM 
      LEFT JOIN 
     trx.table3 CT ON CT1.WEB_NUM = CT.WEBNUMBER 
    GROUP BY 
     IF (MT.ITEM LIKE '%USED-%', 'Used Restaurant Equipment', CT.TIER1) 
    LIMIT 0 , 15 
+0

这很好,谢谢。 – ToddN

0

如果您不尝试重新定义tier1,但是如果您创建一个从tier1或常量“Used Restaurant Equipment”中获取其值的新列, 。然后,您可以按照用于创建新列的相同条件进行分组,因为group by子句可以是完整表达式。

相关问题