我的查询类似于:
concatenate(
(select col1 from table1) , ( select col1.substr(1,<tillENd>) )
)
如果两个子选择都返回一行和一列,则此方法正常。就我而言,两者都会给出多行而只有一列。
我想逐行连接它们。我怎么能这样做?
更新:完整查询如下所示。
查询1:
select col3
from tabl2
where col2 in (select substr(A,1,instr(A,'_',-1)-1)
from ( select substr(col1,1,instr(col1,'/')-1) as A
from ( select col1 from tabl1 )
)
)
seond select query:
select substr(col1,instr(col1,'/')) as A1
from ( select col1
from tabl1 )
答案 0 :(得分:7)
select ...
from ...
union all
select ...
from ...
或者,如果您使用UNION而不是UNION ALL,则完整的结果集将受DISTINCT操作的约束。
答案 1 :(得分:1)
现在您已经提供了一些示例查询,我们可以更轻松地提供解决方案。
关于您的附加要求,我假设您不希望匹配void字符串,因此最简单的方法是在子查询中过滤掉它们。
with data as ( select substr(col1,1,instr(col1,'/')-1) as A
, substr(col1,instr(col1,'/')) as A1
from tabl1
where instr(col1,'/') > 0 )
select tabl2.col3
, data.A1
from data
join tabl2
on tabl2.col2 = substr(data.A,1,instr(data.A,'_',-1)-1);
答案 2 :(得分:0)