Mysql sql列格式
只是一个简单的问题 在MySQL中,如何将数值显示为字符串等价项 所以 所以如果我有像Mysql sql列格式,mysql,sql,formatting,Mysql,Sql,Formatting,只是一个简单的问题 在MySQL中,如何将数值显示为字符串等价项 所以 所以如果我有像 SELECT object_name, object_status where object_status > 0 这件事又回来了 object#1, 1 object#2, 2 object#3, 1 object#4, 3 但我想让它展示出来 object#1, New object#2, Old object#3, New object#4, Cancelled 提前感谢KS您可以在这方面使
SELECT object_name, object_status where object_status > 0
这件事又回来了
object#1, 1
object#2, 2
object#3, 1
object#4, 3
但我想让它展示出来
object#1, New
object#2, Old
object#3, New
object#4, Cancelled
提前感谢KS您可以在这方面使用
案例
SELECT object_name,
CASE object_status
WHEN 1 THEN 'New'
WHEN 2 THEN 'Old'
WHEN 3 THEN 'Cancelled'
ELSE NULL
END status
where object_status > 0
或
您可以创建一个新的映射表并将这两个表连接在一起。新表将有两列—一列表示对象状态,另一列表示名称。那就加入这两个
SELECT s.object_name, sm.StatusName
FROM Status s
INNER JOIN StatusMapping sm on s.object_status = sm.object_status
WHERE s.object_status > 0
这将允许您在不更改查询的情况下根据需要添加新映射。您总是比我快;)干杯,伙计们,就是这个!您最好改进您的模式并创建一个映射表。然后,您只需要连接,而不需要使用case语句等减慢查询速度。
SELECT object_name,
CASE
WHEN object_status = 1 THEN 'New'
WHEN object_status = 2 THEN 'Old'
WHEN object_status = 3 THEN 'Cancelled'
ELSE NULL
END status
where object_status > 0
SELECT object_name,
case object_status when 1 then 'New'
when 2 then 'Old'
when 3 then 'Cancelled' end as status
from myTable
where object_status > 0
SELECT s.object_name, sm.StatusName
FROM Status s
INNER JOIN StatusMapping sm on s.object_status = sm.object_status
WHERE s.object_status > 0