【发布时间】:2012-12-26 10:07:04
【问题描述】:
我目前正在使用REPLACE 函数来更改几个记录名称(整数到它们对应的人类可读名称),如下所示:
SELECT SUM(COUNT) AS Actions, replace(replace(replace(replace(replace(replace(EVENT, 2, 'iOS'), 1, 'Web'), 3, 'Android'), 4, 'Windows'), 5, 'Mac'), 6, 'Unknown') AS Platform
FROM `METRICS_WEEKLY`
WHERE EVENT IN (1, 2, 3, 4 ,5 ,6)
GROUP BY EVENT
我想构建一个查询,它在 EVENT 列中使用超过 30 个数字并将它们映射到更友好的名称。我无法更改当前表(我不是表架构的创建者)。有没有更简单的方法来映射更大的字段名称组?
【问题讨论】:
-
我只想说
replace的使用非常聪明,以某种方式,因为事件可能存储为整数。我从来没有想过这样做。 -
你最好使用外键。可扩展且清晰。