SQL 查询根据列值显示名称

标签 sql

名为 ORDER_STATUS 的列具有三种不同的状态

  • 110(已发布)
  • 120(已包装)
  • 130(已发货)。

现在根据查询返回的数值,我想显示实际名称。我怎样才能实现这个目标?我正在尝试在 SELECT 中使用它。

SELECT 
  OLI.do_dtl_status ORDER_STATUS
FROM 
  appwms.order_line_item OLI
WHERE 
  ORD.tc_order_id = '1002424748' 

这里 OLI.do_dtl_status ORDER_STATUS 是我想要根据其值替换为名称的列。请注意,这是为了故障排除。所以我不是在寻找性能等,而是在寻找一些可以简单地添加到查询中的东西。

最佳答案

理想情况下,您可以将名称存储在单独的表中并使用 JOIN。

Please note this is for trouble-shooting so I am not looking for performance etc but something which is simple to add in the query.

对于一次性情况,您可以将它们硬编码到查询中:

SELECT CASE OLI.do_dtl_status
          WHEN 110 THEN 'Released'
          WHEN 120 THEN 'Packed'
          WHEN 130 THEN 'Shipped'
       END AS ORDER_STATUS
FROM appwms.order_line_item OLI
WHERE ORD.tc_order_id='1002424748'

关于SQL 查询根据列值显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089238/

相关文章:

sql - 如何创建虚拟列并在连接后填充数组?

java - 在结果集中找不到列

mysql - 选择链接表中具有计数的行

mysql - 将函数应用于整个表

sql - 如何进行正确的计算?

mysql - 类似 Stackoverflow 的评论投票 SQL 查询

c# - 长时间运行存储过程而不保持与 Azure 数据库的连接打开

mysql - 按日期对时间戳字段进行分组

sql - Extbase - 从查询中获取创建的 sql

java - 使用android加速远程数据检索