Concat结果2选择查询到1列(oracle)

时间:2017-08-20 13:05:03

标签: oracle

我试图将记录插入到我的表中。但是有一列我想要获得2个select语句的连接结果。就像2个语句一样,它将获取它们的记录并连接成1值,以便它可以插入到列中。

insert into ABC (Name,City,Age) 
 Values ('John',(
           (Select City from TableA where ID=1)concat(Select City from TableA where ID=2)),'22')

或者它可以用逗号分隔,但我不知道在这里使用什么。

3 个答案:

答案 0 :(得分:1)

试试这个:

    INSERT INTO ABC (Name, City, Age)
         VALUES ('John',
                 ( 
                   (SELECT City FROM TableA WHERE ID = 1) || 
                   (SELECT City FROM TableA WHERE ID = 2)
                 ),
                 '22');

但是确保...... WHERE ID = 1和...... WHERE ID = 2返回一行。

答案 1 :(得分:1)

使用交叉连接从两个表中进行选择会产生一个很好的清晰语句:

insert into ABC (Name,City,Age) 
select 'John', concat(t1.city, t2.city), 22
from TableA t1
     cross join TableA t2
where t1.ID = 1
and t2.ID = 2
/

答案 2 :(得分:0)

为此使用CONCAT()或CONCAT_WS()函数(reference

insert into ABC (Name,City,Age) Values (
  'John', 
  CONCAT_WS(' ', (Select City from TableA where ID=1), (Select City from TableA where ID=2)),
  '22'
 )