【发布时间】:2013-10-24 18:41:58
【问题描述】:
我有 2 个表将匹配一个值,我们称之为 PersonID。以下是表格:
Table1
ID | Field | Value
-----|-----------|--------
1 | Loc1 | faf
1 | Loc1 | 0653
2 | Loc1 | 5711
3 | Loc1 | 9669
4 | Loc1 | ado
4 | Loc1 | 6843
5 | Loc1 | rfc
6 | Loc1 | cba
Table2
ID | Loc1 | Loc2
-----|-----------|--------
1 | faf | 0653
2 | | 5711
3 | | 9669
4 | ado | 6843
5 | rfc |
6 | cba |
我不小心为 Table1 中的字段插入了值 Loc1。我需要根据 Table2 中的列名对其进行更新。
如何通过在 Table2 中搜索 Table1.Value 列然后获取列名来更新 Table1。我需要它最终看起来像这样:
ID | Field | Value
-----|-----------|--------
1 | Loc1 | faf
1 | Loc2 | 0653
2 | Loc2 | 5711
3 | Loc2 | 9669
4 | Loc1 | ado
4 | Loc2 | 6843
5 | Loc1 | rfc
6 | Loc1 | cba
注意:所有 Loc2 值都不是数字,所有 Loc1 值都不是字母。为了简单起见,我只是使用了这些值。
【问题讨论】:
-
我只是想更新 Table1.Field 以便它具有与 Table2 中相关的正确列名。
-
ID 列不是身份列,它只是个人的 ID。因此,John Smith 的 ID 为 1,Jane Doe 的 ID 为 2,依此类推。
-
Table1.ID是Table2.ID的外键,只需标准化您的数据并删除Table1.Field和Table1.Value。如果Table1中没有其他数据,也将其删除。如果您不想要标准化数据,请不要使用关系数据库。
标签: sql sql-server sql-server-2005 sql-update columnname