我有一个名为ORDER_STATUS
的列的三种不同状态现在,根据查询返回的数值,我想显示实际名称。我怎样才能做到这一点?我想在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是我想要根据其值替换名称的列。请注意这是故障排除。所以我不是在寻找性能等,而是在查询中添加一些简单的东西。
答案 0 :(得分: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'
答案 1 :(得分:0)
典型的方法是使用ordertatus(value,name)和可能是该表的外键的单独表。通过这种方式,您可以使用orderstatus表来获取状态名称,外键可以确保您只在主表中输入有效的orderstatus。