问题:编写一个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 | 是 |