我需要并排放置两个不同的整数集合。这些值没有以任何方式链接在一起,它们只是数字,以后将用于插入。我已经试过了:
select A.COLUMN_VALUE as a, B.COLUMN_VALUE as b
from table(sys.ODCINUMBERLIST(123, 456)) A, table(sys.ODCINUMBERLIST(654, 321)) B;
得到的结果是-值A似乎是重复的:
+---+---+
|A |B |
+---+---+
|123|654|
|123|321|
|456|654|
|456|321|
+---+---+
虽然我需要这样:
+---+---+
|A |B |
+---+---+
|123|654|
|456|321|
+---+---+
有谁知道我能做到这一点吗?
您可以使用union all
或join
。假设您的长度相同:
select A.COLUMN_VALUE as a, B.COLUMN_VALUE as b
from (select a.column_value, rownum as rn
from table(sys.ODCINUMBERLIST(123, 456)) A
) a join
(select b.column_value, rownum as rn
form table(sys.ODCINUMBERLIST(654, 321))
) b
on a.rn = b.rn;
这将为每行分配一个行号,然后在该行上进行连接。join
假设两个列表的长度相同。如果没有,请使用full join
:
select A.COLUMN_VALUE as a, B.COLUMN_VALUE as b
from (select a.column_value, rownum as rn
from table(sys.ODCINUMBERLIST(123, 456)) A
) a full join
(select b.column_value, rownum as rn
form table(sys.ODCINUMBERLIST(654, 321))
) b
on a.rn = b.rn;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句