IF是PL / SQL构造.如果您正在执行查询,则使用的是SQL而不是PL / SQL.
在SQL中,您可以在查询本身中使用CASE语句
SELECT DISTINCT a.item,
(CASE WHEN b.salesman = 'VIKKIE'
THEN 'ICKY'
ELSE b.salesman
END),
NVL(a.manufacturer,'Not Set') Manufacturer
FROM inv_items a,
arv_sales b
WHERE a.co = '100'
AND a.co = b.co
AND A.ITEM_KEY = b.item_key
AND a.item LIKE 'BX%'
AND b.salesman in ('01','15')
AND trans_date BETWEEN to_date('010113','mmddrr')
and to_date('011713','mmddrr')
ORDER BY a.item
由于您没有进行任何聚合,因此您不希望在查询中使用GROUP BY.你真的确定你需要DISTINCT吗?人们经常随意抛出它,或者在缺少连接条件时添加它,而不是考虑是否确实需要做额外的工作来识别和删除重复项.