希望在以下场景中进行一些输入(使用MSSQL08)。假设我有一个用户'包含'用户'列表的表格,他们的' CurrentCode' (2位数)和一些' JobCode' (3位数)。我想更新一下' CurrentCode'字段为更准确的3位数代码,因此我创建了一个名为' NewCode'的这些代码的单列表。
' NewCode'字段直接与JobCode'字段,所以更新' CurrentCode'对于拥有有效“JobCode”的用户而言简单。但对于那些没有“JobCode”的人来说呢? (是' NA')我只是将他们当前的2位数代码匹配到' NewCode'中的列表的前2位数字。表。
我已经能够如下输出,使用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 |
+------+-------------+---------+---------+
我如何创建这个条件连接到一个表实例,或者甚至可能吗?
答案 0 :(得分:0)
有条件加入是可能的,而在您的情况下,您可以使用SELECT中的ISNULL()
以简单的方式完成
ISNULL([NewCode - Confirmed], [NewCode - Matched]) AS NewCode