如何使用斜杠连接3个查询结果并使用SELECT语句显示在另一列中?

时间:2016-07-28 01:48:05

标签: sql oracle

我有两张桌子 - ' BAT'和' SET'。

SET Table包含以下列:

  • ID(主键)

  • QC_RUN_ID

BAT表包含以下列:

  • BATSET_ID(这是将BAT映射到SET的外键)

  • CREATED_DATE

  • DTE_ID

  • BAT_NAME

  • ETA

以下3个陈述合理:

声明1:

select to_char(CREATED_DATE,'DDMONYYY') AS PART1 from BAT WHERE DTE_ID = '33782451' AND BAT_NAME LIKE '110_170_ECM 140_%';

结果(PART1):

25JUL016

声明2:

SELECT SET.QC_RUN_ID AS PART2
FROM SET
INNER JOIN BAT
ON SET.ID=BAT.BATSET_ID
WHERE BAT.DTE_ID = '33782451' AND BAT.BAT_NAME LIKE '110_170_ECM 140_%'

结果(PART2):

7947492

陈述3:

SELECT SUBSTR(t.ETA, INSTR(t.ETA, '=')+1, (INSTR(t.ETA, 'type')-INSTR(t.ETA, '='))-2) AS PART3
  FROM BAT t
  WHERE t.DTE_ID = '33782451' AND t.BAT_NAME LIKE '110_170_ECM 140_%'

结果(PART3):

153464685

我的要求:

我必须将PART1,PART2和PART3结果与使用单个查询之间的斜杠连接起来,并将其显示为带有SELECT语句的另一列。

结果输出应该是这样的:

 25JUL016\7947492\153464685

我该怎么做?请建议。感谢。

1 个答案:

答案 0 :(得分:2)

如果我正确地跟踪查询,那么您只需要修改第二个以获得您想要的内容:

text, link, and image

如果这三个查询不可组合,你可以这样做:

SELECT (to_char(t.CREATED_DATE,'DDMONYYY') || '/' ||
        SET.QC_RUN_ID || '/' ||
        SUBSTR(t.ETA, INSTR(t.ETA, '=')+1, (INSTR(t.ETA, 'type')-INSTR(t.ETA, '='))-2)
       )
FROM SET INNER JOIN
     BAT t
     ON SET.ID = t.BATSET_ID
WHERE t.DTE_ID = '33782451' AND t.BAT_NAME LIKE '110_170_ECM 140_%';

但我不认为子查询是必要的。