有没有类似于“select(1,2,3) as source(id, line, row)”的语句,其中source不是表名,id、line、和row也是起的别名,为了方便后续通过source.id,source.line,source.row取值。
在merge into的时候需要用到。
merge into target
using (select 1, 25, 'XiaoLi' from systables where tabid=1) as source(id, age, name)
on target.id=source.id
when matched then
update set target.id=source.id, target.age=source.age, target.name=source.name
when not matched then
insert (target.id, target.age, target.name) values(source.id, source.age, source.name);
收起例如:create table target(id int, age int, name char(10));
merge into target
using (select 1, 25, 'XiaoLi') as source(id, age, name)
on target.id=source.id
when matched then
update set target.id=source.id, targe.age=source.age, target.name=source.name
when not matched then
insert (target.id, target.age, target.name) values(source.id, source.age, source.name);
问题:红色标注的语句是模仿mssql写的,但对于GBase8t应该是错的,这块应该怎么写才对?
source不是一张实际存在的表,只是任意起的一个名字,id,age和name也是起的别名,只是为了方便通过source.id,source.age,source.name来取得1,25,‘XiaoLi’这几个值。
收起