我有一个要求,从前端(JSP)
市场 - 第1次下降
Sector --2nd下拉
Webcategory - 第3次下拉
所以最初获取此页面会有数据库命中, 所以作为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层上完成。
答案 0 :(得分:2)
我同意@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(+);