想要一些关于以下场景的输入(使用MSSQL08)。假设我有一个“User”表,其中包含“User”、“CurrentCode”(2位)和一些“JobCode”(3位)的列表。我想要更新'CurrentCode‘字段为一个更准确的3位代码,所以我已经创建了这些代码的单列表,称为'NewCode’。
“NewCode”字段与“JobCode”字段直接相关,因此对具有有效“JobCode”的用户更新“CurrentCode”很容易。然而,对于那些没有'JobCode‘(是'NA')的人来说,我只是在将他们当前的2位代码与'NewCode’表中列表的前2位进行匹配。
我已经能够输出如下内容,使用两个联接到“NewCode”表的实例(如果存在值,则“确认”链接到'JobCode‘,如果没有,则使用链接到'CurrentCode’的“匹配”):
+------+-------------+---------+---------------------+-------------------+
| User | CurrentCode | JobCode | NewCode - Confirmed | NewCode - Matched |
+------+-------------+---------+---------------------+-------------------+
| A | 11 | 111 | 111 | |
| B | 12 | NA | | 120 |
| C | 23 | 232 | 232 | |
| D | 42 | 423 | 423 | |
| E | 11 | 112 | 112 | |
| F | 21 | NA | | 210 |
| G | 33 | NA | | 330 |
+------+-------------+---------+---------------------+-------------------+我很有兴趣了解如何将2连接组合到'NewCode‘表中,这样它将返回一个列中的代码,这取决于'JobCode’字段中是否有匹配。例:
+------+-------------+---------+---------+
| User | CurrentCode | JobCode | NewCode |
+------+-------------+---------+---------+
| A | 11 | 111 | 111 |
| B | 12 | NA | 120 |
| C | 23 | 232 | 232 |
| D | 42 | 423 | 423 |
| E | 11 | 112 | 112 |
| F | 21 | NA | 210 |
| G | 33 | NA | 330 |
+------+-------------+---------+---------+我将如何将这个条件连接创建到一个表实例,或者它是否可能?
发布于 2015-07-14 03:25:58
条件联接是可能的,而在您的情况下,您可以使用ISNULL()在您的选择中简单地使用它。
ISNULL([NewCode - Confirmed], [NewCode - Matched]) AS NewCodehttps://stackoverflow.com/questions/31397018
复制相似问题