繁体   English   中英

在Oracle查询中需要帮助

[英]Need Help in Oracle query

我有一个要求,从前端(JSP)

  1. 如果选择市场,则必须填充映射到市场的扇区
  2. 同样,根据所选的扇区值,必须填充最终设备。

市场-第一下跌

部门-第二下拉

Webcategory-第三下拉

因此,最初要获取此页面,将有数据库命中,因此作为oracle DB开发人员,我必须发送包含此映射的OUT参数。

终端设备已映射到部门并已映射到市场。

我正在使用下面的查询,没有按要求给出我的结果。

SELECT C.MARKET_SEGMENT_NAME,
       C.MARKET_SEGMENT_ID,
       B.SECTOR_NAME,
       B.SECTOR_ID,
       A.WEB_CATEGORY_NAME,
       A.WEB_CATEGORY_ID
FROM   MSE_WEB_CATEGORY_MASTER A,
       MSE_SECTOR_MASTER B,
       MSE_MARKET_SEGMENT_MASTER C
WHERE  C.MARKET_SEGMENT_ID = B.FK_MARKET_SEGMENT_ID
       AND B.SECTOR_ID = A.FK_SECTOR_ID(+);

输出:

MARKET_SEGMENT_NAME MARKET_SEGMENT_ID   Sector   Sector_id  WEB_cate    Web_category_id
GOOGLE              90                  Slawn    1          FLIPKART    1
BING                100                 Clown    2          SNAPDEAL    2
YAHOO               110                 VERICON  4          AMAZON      3
YAHOO               110                 VERICON  4          E-KART      4
YAHOO               110                 QUALCOMM 3  

预期产量:

MARKET_SEGMENT_NAME-MARKET_SEGMENT_ID-SECTOR_NAME-SECTOR_ID-WEB_CATEGORY_NAME-WEB_CATEGORY_ID
GOOGLE-90-Slawn-1-FLIPKART-1
BING-100-Clown-2-SNAPDEAL-2
YAHOO-110-VERICON-4-AMAZON-3
YAHOO-110-VERICON-4-E-KART-4
YAHOO-110-QUALCOMM-3

这样我就可以从过程中将此组合作为输出参数发送。 由于在JSP /表示层中不存在DB查询存在限制,因此所有操作均在DB层完成。

我同意@Ben。 您的查询似乎返回所需的数据。 将值连接到以短划线分隔的字符串中是显示层的任务。

话虽如此,这是您需要的解决方案。 || 是串联运算符。 NVL2()函数处理外部连接的列,并在它们为空时抑制破折号。

SELECT C.MARKET_SEGMENT_NAME
       ||'-'||C.MARKET_SEGMENT_ID
       ||'-'||B.SECTOR_NAME
       ||'-'||B.SECTOR_ID
       ||nvl2(A.WEB_CATEGORY_NAME,'-'||A.WEB_CATEGORY_NAME,null)
       ||nvl2(A.WEB_CATEGORY_ID,'-'||A.WEB_CATEGORY_ID,null) concat_str
FROM   MSE_WEB_CATEGORY_MASTER A,
       MSE_SECTOR_MASTER B,
       MSE_MARKET_SEGMENT_MASTER C
WHERE  C.MARKET_SEGMENT_ID = B.FK_MARKET_SEGMENT_ID
       AND B.SECTOR_ID = A.FK_SECTOR_ID(+);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM