-1

我写了3个查询:

   select column1 from table_name1 where -- conditions) 
   ||' TEXT2: '|| (select column2 from table_name2 where  -- conditions) 
   ||' TEXT3: '|| (select column3 from table_name3 where  -- conditions)

这似乎有效。这是输出:

column1 'TEXT2:' column2 'TEXT3:' column3

我尝试使用CHR(09),但我认为我无法正确使用它,或者它无法与我们的系统一起使用 - 3 个选择语句是我们在 EAS(-企业应用程序软件)系统中的内部查询的一部分- 我用这个试过了格式query1||CHR(09)||query2,但它不会将其tab放入输出中。

行中的预期输出:

'TEXT1:' column1||tab character||'TEXT2:' column2||tab character||'TEXT3:' column3

也许我应该尝试使用lpad(' ',8)将空格放入其中?

我怎样才能达到预期的输出?

4

2 回答 2

0

请试试这个:

((select ' TEXT1: '||column1 from table_name1 where 条件) ||CHR(09)||' TEXT2: '|| (select column2 from table_name2 where 条件) ||'CHR(09)||'TEXT3: ' || (从 table_name3 where 条件中选择 column3))

于 2018-10-04T18:02:12.390 回答
0

假设所有 3 列的类型都是 text( VARCHAR2/CHAR) ,您可以先做 aUNION ALL然后应用LISTAGGwithCHR(9)作为分隔符。

SELECT LISTAGG(text 
               || ': ' 
               || col, CHR(9)) 
         within GROUP( ORDER BY text ) 
FROM   (SELECT column1 AS col, 
               'TEXT1' AS text 
        FROM   table_name1 --where conditions 
        UNION ALL 
        SELECT column2 AS col, 
               'TEXT2' AS text 
        FROM   table_name2 --where conditions 
        UNION ALL 
        SELECT column3 AS col, 
               'TEXT3' AS text 
        FROM   table_name3 --where conditions    
       ); 
于 2018-10-05T04:27:51.123 回答