我有一张表A(id integer,name varchar(10))
和一张表B(id integer,name1 varchar(10),name2 varchar(10), name3 varchar(10))
我希望将表A的前3个名称插入到表B行中。 例如,如果我有:
table A
id name
1 ed
2 edd
3 eddd
4 mike
我想要这个:
table B
id name1 name2 name3
1 ed edd eddd
表A的正常order by id
没问题。
答案 0 :(得分:0)
您可以使用条件聚合进行转动并插入:
insert into b (name1, name2, name3)
select max(case when seqnum = 1 then name end),
max(case when seqnum = 2 then name end),
max(case when seqnum = 3 then name end)
from (select a.*, row_number() over (order by id) as seqnum
from a
order by id
limit 3
) a;
这假定id
是一个串行列。如果没有,只需选择并插入第一列{.1}}。
答案 1 :(得分:0)
@Test
public void testStack()
{
try
{
String url = "http://5.249.148.180:8280/GLIS_Registration/6";
String response = restTemplate.execute(url, HttpMethod.GET, new SampleRequestCallBack(), new CustomResponseExtractor());;
logger.info(response);
}
catch (Exception e)
{
logger.error("Errore", e);
}
}