将表中的一个列数据插入到其他表中,但将动态指定其他列数据

时间:2011-03-04 15:56:05

标签: sql sql-server sql-server-2005

我有两张桌子。 表A列 - 援助,aname 表B列 - bid,bname

从表A中,我将从“援助”栏中获取数据, 并将其插入表B的'bid'列,但在表B的 bname 列中,我将插入一个新值。我该怎么做?

create table A(aid int,aname char)

insert into A values(111, 'e') 


create table B(bid int, bname char)


insert into B (bid,bname)

出价将从查询中获取价值:从a中选择援助 bname将获得一个新值-m

预期结果应为:表B将具有:

出价bname --- ----- 111米

1 个答案:

答案 0 :(得分:2)

试试这个:

insert into b (bid, bname) select aid, 'm' as bname_fixed_val from a

两个事实启用了上述解决方案:

  1. insert .. select子句允许您插入随任何select返回的值。
  2. 您可以将常量值作为带select的字段返回,例如:

    SELECT 0 as id, 'John' as name
    
  3. 将这两个点组合在一起,我使用insert..select子句从第一个表(aid)中选择字段值,并为第二个字段选择一个常量值(m )。 AS bname_fixed_val子句只是一个字段别名,可以省略。

    有关SQL的更多信息,这里有一个链接:http://www8.silversand.net/techdoc/teachsql/index.htm,虽然谷歌搜索它也不会受到伤害。