作为一名Web开发人员,我知道如何在多种语言中使用IF ELSE.但是,我正在学习如何使用TOAD for Oracle编写报告.
我的问题是,如何正确添加IF ELSE语句?
(VIKKIE和ICKY一直由我的主管负责帮助我学习)
SELECT disTINCT a.item,b.salesman,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 item IN ('BX4C','BX8C','BX866') --AND salesman ='15' AND a.item LIKE 'BX%' AND b.salesman in ('01','15') AND trans_date BETWEEN to_date('010113','mmddrr') and to_date('011713','mmddrr') GROUP BY a.item,a.manufacturer ORDER BY a.item IF b.salesman = 'VIKKIE' THEN a.salesman := 'ICKY'; END IF;
解决方法
IF是PL / sql构造.如果您正在执行查询,则使用的是sql而不是PL / sql.
SELECT disTINCT a.item,(CASE WHEN b.salesman = 'VIKKIE' THEN 'ICKY' ELSE b.salesman END),'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吗?人们经常随意抛出它,或者在缺少连接条件时添加它,而不是考虑是否确实需要做额外的工作来识别和删除重复项.
原文地址:https://www.jb51.cc/mssql/84090.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。