我正在尝试以一种典型的方式显示我的数据的查询。最简单的解释方法就是这样的例子:
头:
SELECT
'010' header,
'54' as number1,
'MAC' sender
from dual
table1
select
phonenumber,
clientid
from table1
output:
phonenumer clientid
54234 3
4234 2
41211 5
表2
select
productname,
productid
from table2
output:
productname productid
Apple 9
TV 2
table1,table2和header未连接。作为输出我会怀疑:
010 54 MAC <- from header
54234 3 <- from query1
Apple 9 <- from query2
010 54 MAC
4234 2
TV 2
等等。
如何处理什么?我试图使用交叉连接,联合。你能给我一些提示吗?
使用SQL可能是不可能的?我应该创建一个程序/功能吗?
答案 0 :(得分:2)
您可以使用union all
组合行。然后,您可以使用row_number()
或rownum
对值进行交错,并使用order by
对其进行排序:
select header, number1, sender
from ((select header, number1, sender, 1 as priority, NULL as rn
from header
) union all
(select phonenumber, clientid, NULL, 2, rownum as rn
from table1
) union all
(select NULL, productname, productid, 2, rownum as rn
from table2
)
) t
order by priority, rn, header nulls last;
答案 1 :(得分:1)
如果你想在不同的表中输出一些数据,只需建议使用CROSS JOIN
示例代码:
SELECT TITLE, NUMBER_THEATER, PRICE
FROM FILM, THEATER;
所以输出将是
中的数据 TITLE
,Number_THEATER
和PRICE
注意:FILM
和THEATER
是不同的表,希望这有用:)