我写了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)
将空格放入其中?
如何实现预期的输出?
请尝试以下操作:
((选择" 文本 1:"||列 1 从 table_name1 哪里条件( ||CHR(09(||'文本 2: '||(从table_name2条件中选择第 2 列(||'CHR(09(||'文本 3: '||(从"table_name3条件"中选择第 3 列((
假设所有 3 列的类型都是 text(VARCHAR2/CHAR
(,您可以先做一个UNION ALL
,然后应用LISTAGG
,以CHR(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
);