2

对于名为 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 是我想要根据其值替换为名称的列。请注意,这是为了排除故障。所以我不是在寻找性能等,而是在查询中添加一些简单的东西。

4

2 回答 2

5

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

请注意,这是为了排除故障,所以我不是在寻找性能等,而是在查询中添加一些简单的东西。

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

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'
于 2012-06-18T18:58:58.770 回答
0

典型的方法是有一个单独的表,其中包含 orderstatus(值、名称)和该表的可能外键。这样,您可以加入 orderstatus 表以获取状态名称,外键确保您仅在主表中输入有效的 orderstatus。

于 2012-06-18T19:00:13.843 回答