0

我正在尝试使用来自另一个表字段的输入插入一个字段。虽然这对于很多数据库引擎来说是完全可行的,

我有以下字段,

新表架构

  • 姓名
  • 工业ID(int)
  • 位置标识(整数)

但实际记录就像,

  • xxxx
  • 文本(varchar)
  • 文本(Varchar)

但我想要这两个 Industryid 和 Locationid by id 来自另一个表 Industries, Locations。

我还有 2 张桌子

行业

  • ID
  • 姓名

地点

  • ID
  • 姓名

我的查询是,

select'insert into organizations(name,industryid,locationid)
values
('''+
Nameofthecompany+''','+
Isnull(industrytype,'Null')+','+
ISNULL(Location,'Null')+')' 
from Organization`

结果

insert into organizations(name,industryid,locationid) 
values 
('Swamy',Telcom,Chennai)

预期结果

insert into organizations(name,industryid,locationid)
values
('Swamy',12,150)
4

2 回答 2

2

如果您的当前/实际记录已经在Organization您的查询中所示名称的表中,您可以使用这种方法来填充您的新Organizations表:

INSERT INTO Organizations( name, IndustryId, LocationId )
SELECT o.Nameofthecompany, i.Id, l.Id
FROM Organization AS o
LEFT JOIN Industries AS i ON o.industrytype = i.Name
LEFT JOIN Location AS l ON o.Location = l.Name

这将获取现有名称,连接到您的参考表(IndustriesLocations)并检索Id相应文本值的值。

LEFT JOIN将从组织中带回所有名称,但不要求它们在参考表中具有匹配的行业和位置。

于 2013-04-10T05:04:27.163 回答
0

你可以这样做:

SELECT Col1, Col2
INTO TestTable
FROM OriginalTable
WHERE Conditions

请注意,SELECT INTO 仅在 INTO 子句中指定的表不存在时才有效

或者:

INSERT INTO TestTable (Col1, Col2)
SELECT Col1, Col2
FROM OriginalTable
WHERE Conditions
于 2013-04-10T05:04:26.367 回答