如何向我的查询添加制表符

How can i add a tabulator character to my query

我写了 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 个 select 语句是我们系统中 EAS(-企业应用软件) 的内部查询 - 我尝试使用这种格式 query1||CHR(09)||query2 但它没有将 tab 放入输出中。

行中的预期输出:

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

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

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

请试试这个:

((select ' TEXT1: '||column1 from table_name1 where conditions) ||CHR(09)||' TEXT2: '|| (select column2 from table_name2 where 条件)||'CHR(09)||'TEXT3: '||(select column3 来自 table_name3 where 条件))

假设所有 3 列的类型都是 text(VARCHAR2/CHAR) ,您可以先做一个 UNION ALL 然后应用 LISTAGGCHR(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    
       );