我写了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)
来添加空格?
我如何实现预期的输出?
答案 0 :(得分:0)
请尝试以下操作:
((从条件中的table_name1中选择'TEXT1:'|| column1)|| CHR(09)||'TEXT2:'||(从条件中的table_name2中选择column2)||'CHR(09)||' TEXT3:'||(从有条件的table_name3中选择column3)
答案 1 :(得分:0)
假设所有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
);