描述条件处理的SQL查询示例

问题:编写一个SQL查询以显示2列。第一列应具有ORDER_ID,第二列应将值设为YES / NO,以便基于ORDER_TOTAL> 500进行免费送货。

解决方案

根据ORDER_TOTAL标准,可以显示查询ORDER_ID和免费送货结果的查询,如下所示。

示例

SELECT ORDER_ID,
   CASE WHEN ORDER_TOTAL > 500 THEN ‘YES’
      ELSE ‘NO’ AS FREE_SHIPPING
   END
FROM ORDERS

我们将使用CASE表达式,通过它们我们可以实现检查ORDER_TOTAL的逻辑。如果ORDER_TOTAL大于500,则免费送货为“是”,否则,我们将为“否”。该查询将返回两列ORDER_ID和FREE_SHIPPING。

例如,如果下面有ORDERS DB2表。

ORDER_ID
ORDER_TOTAL
Z22345
342
Z62998
543
Z56990
431
Z56902
6743
Z99781
443
Z56112
889

 

然后,带有CASE WHEN表达式的SQL查询将返回以下结果。

ORDER_ID
FREE_SHIPPING
Z22345
没有
Z62998

Z56990
没有
Z56902

Z99781
没有
Z56112