SQL Server 2005 - 在一个语句中对单个表中的值进行多次查找

时间:2013-01-07 14:14:10

标签: sql sql-server

需要帮助,请参阅下表结构:

Table: MainData (see fields below)

ID  TypeId  TypeName
0   0   MAIN
1   4   Test1
2   4   Test2
3   4   Test3
4   4   Test4
7   7   File1
8   7   File2
9   7   File3
10  7   File4
14  8   Database1
15  8   Datebase2
16  8   Database3
17  8   Database4

请参阅下面的查询,我正在与之讨论

插入temptable(Field1,Field2,Field3)值(Test1,File4,Database3)

Test1,File4,Database3 - 我将这些作为字符串值传递给函数,现在必须得到他们需要插入temptable的ID

那么下面的查询应该变成

插入temptable(Field1,Field2,Field3)值(1,10,16)

1 - Test1
10 - File4
16 - Database3

此致

1 个答案:

答案 0 :(得分:0)

insert into temptable
    select (select id from Maintable mt where mt.typename = 'test1'),
           (select id from Maintable mt where mt.typename = 'File4'),
           (select id from Maintable mt where mt.typename = 'Database3')

注意:仅当Maintable中对于任何给定值确实存在零个或一个条目时,此方法才有效。您可能想要使用typeid,但问题并不清楚。