Sql server 查询字符串并从另一个表中使用ID(标识)号更新表
我有多个表,它们使用itemID相互关联(外键)。例如,我的主表具有程序的字符串名称(即Microsoft、Oracle等) 主表Sql server 查询字符串并从另一个表中使用ID(标识)号更新表,sql-server,insert,sql-update,multiple-tables,Sql Server,Insert,Sql Update,Multiple Tables,我有多个表,它们使用itemID相互关联(外键)。例如,我的主表具有程序的字符串名称(即Microsoft、Oracle等) 主表 ID | ProgNAME | ProID | ------------------------ 11 | Microsoft | | 12 | Oracle | | 13 | Microsoft | | 14 | Microsoft | | 15 | Oracle | | ID | P
ID | ProgNAME | ProID |
------------------------
11 | Microsoft | |
12 | Oracle | |
13 | Microsoft | |
14 | Microsoft | |
15 | Oracle | |
ID | ProgNAME | ProID |
---------------------------
11 | Microsoft | 1 |
12 | Oracle | 2 |
13 | Microsoft | 1 |
14 | Microsoft | 1 |
15 | Oracle | 2 |
可编程
ProgramID | ProgramName|
------------------------
1 | Microsoft |
2 | Oracle |
我想查询我的ProgramTable中链接到sting的关联值(标识),然后将关联值(标识)插入或更新我的MainTable到ProID字段中。因此,我的最终结果如下:
主表
ID | ProgNAME | ProID |
------------------------
11 | Microsoft | |
12 | Oracle | |
13 | Microsoft | |
14 | Microsoft | |
15 | Oracle | |
ID | ProgNAME | ProID |
---------------------------
11 | Microsoft | 1 |
12 | Oracle | 2 |
13 | Microsoft | 1 |
14 | Microsoft | 1 |
15 | Oracle | 2 |
或者如果它只有两个值,你可以做一些像
UPDATE MainTable
SET ProID = CASE WHEN ProgramName = 'Microsoft' THEN 1
WHEN ProgramName = 'Oracle' THEN 2
END