我有一个mysql查询,我用case替换列名。
SELECT *,
(CASE
WHEN cp.client_type = 1 THEN 'AB'
WHEN cp.client_type = 2 THEN 'BX'
WHEN cp.client_type = 3 THEN 'PC'
WHEN cp.client_type = 4 THEN 'DD'
WHEN cp.client_type = 5 THEN 'DE'
END) AS client_type
FROM clients as cp
问题是有20个这样的情况,我不想用20当条件查询。
有什么办法我可以用
SELECT *,
choose_from(Array("AB","BX","PC","DD","DE"), cp.client_type) as client_type from
clients as cp
1条答案
按热度按时间zqdjd7g91#
正确的解决办法是
clientTypes
表和使用JOIN
:如果你没有,创造一个!
如果您出于某种原因对此有反感,可以使用
elt()
功能:不过,我强烈警告您不要这样做,因为一个小的输入错误可能会真正弄乱您得到的值,并且很难调试。