SELECT DISTINCT association.NamaBadan,
(
CASE
WHEN type = 5
THEN 'Batal'
WHEN NamaBadan LIKE '%BATAL%'
THEN 'Batal'
ELSE 'Sah'
END
) AS STATUS
FROM association
LEFT JOIN tindakan
ON association.assoc_id = tindakan.assoc_id
它返回下表:
正如你所看到的那样,“perseketuan草地马来西亚马来西亚”有重复的结果,下一个专栏的结果不同,其中一些草坪碗是'sah',有些是'batal'。
这是因为tindakan表中有多个条目。类型不是5的条目。例如,tindakan表中的草坪碗上有两个条目。一个是5型,另一个是4型。
由于我的查询声明类型5 = Batal而其他是= Sah,查询输出草坪碗的状态。
如何选择'batal'而不是'sah'。
像
这样的东西IF条件类型= 5 EXISTS,然后选择此条件。
答案 0 :(得分:0)
您可以尝试使用Group by
子句或order by
子句为您排序结果。
然后你可以试试这个:
SELECT association.NamaBadan,
(
CASE
WHEN type = 5
THEN 'Batal'
WHEN NamaBadan LIKE '%BATAL%'
THEN 'Batal'
ELSE 'Sah'
END
) AS STATUS
FROM association
WHERE STATUS LIKE '%Batal%'
LEFT JOIN tindakan
ON association.assoc_id = tindakan.assoc_id
希望它有所帮助。
答案 1 :(得分:0)
可能只使用带有MIN的GROUP BY状态: -
SELECT association.NamaBadan,
MIN(
CASE
WHEN type = 5
THEN 'Batal'
WHEN NamaBadan LIKE '%BATAL%'
THEN 'Batal'
ELSE 'Sah'
END
) AS STATUS
FROM association
LEFT JOIN tindakan
ON association.assoc_id = tindakan.assoc_id
GROUP BY association.NamaBadan
答案 2 :(得分:0)
通过以下查询解决
SELECT DISTINCT association.NamaBadan,
(
CASE
WHEN type = 5
THEN 'Batal'
WHEN NamaBadan LIKE '%BATAL%'
THEN 'Batal'
ELSE 'Sah'
END
) AS STATUS
FROM association
LEFT JOIN tindakan
ON (association.assoc_id = tindakan.assoc_id AND tindakan.type = 5)