从一个表中选择并在导入之前修改它

时间:2017-09-11 20:09:19

标签: sql select sql-update ssms

我已经修改了这个过程并希望简化。在过去,我有两个表,tablename和result。 Tablename有一个名为cnty的列(第90个中的第90个),它是char(3)。第二个表,结果,有一个字段,基本上是000 + cnty。该字段标题为区域。我试图从tablename插入cnty值,在开头添加三个零,并将它们放在列,区域下的结果表中。

现在我在结果中都有两列。现在区域是空白的。 Cnty包含tablename中的值(79954)。

示例数据

 area     employment      busdesc      cnty
               410      gas station    003

期望的结果

  area     employment      busdesc      cnty
 000003        410       gas station     003

3 个答案:

答案 0 :(得分:1)

update res
set res.area = '000' + tbl.cnty
from Result res inner join [originalTable] tbl 
 on res.id=tbl.id --Don't know how to join both tables, let us know

编辑:关于最后一条评论,让我们创建一个新表Results2(因为我不知道表中的所有列)这个表将包含tablename的所有列加上新的Area列。

select *, '000' + cnty as AREA 
  into Results2
    from dbo.tablename;

您必须指定每个列,或者在这种情况下,星号*将执行

答案 1 :(得分:1)

尝试以下查询:

update dbo.result 
            set area = concat('000',cnty);

希望它有所帮助!

答案 2 :(得分:0)

这是您正在寻找的语法吗?

insert into dbo.result (name1, area)
    select name1, '000' + cnty
    from dbo.tablename;

或者,如果表格不存在:

select name1, ('000' + cnty) as area
into dbo.result
from dbo.tablename;