【发布时间】:2021-07-17 01:19:21
【问题描述】:
我正在尝试处理一个有点棘手的存储过程,假设我有 Table_1 与这些数据:
Num1 Name1 Code1 Desc
-------------------------------------------
123B Apple 10 Text1
123B Apple 11 Text1
123C Google 20 Text2
我还有一个如下所示的查找表:
Tbl_LookUp
Num1 Code1
-------------------
123B 10
123C 25
所以我在这种情况下想要做的是:
从 Table_1 中选择数据 WHERE:
- Table_1 和 Num1 上的 Tbl_Lookup 匹配
和
-
如果 Table_1 中特定 Num1 的记录多于 1 条,则只返回 Table_1.Code1=Tbl_Lookup.Code1 所在的行
-
否则,如果Table_1中特定Num1只有1条记录,那么即使Table_1.Code1 = Tbl_Lookup.Code1不起作用,仍然返回记录。
期望的最终结果:
Num1 Name1 Code1 Desc
--------------------------------------------
123B Apple 10 Text1
123C Google 20 Text2
返回 123B 因为此 Num1 有多个记录。其中一个具有对应于 Tbl_Lookup.Code1 的 Code1
返回123C,因为虽然Code1不匹配Tbl_Lookup,但只有一条记录,所以这种情况下join没关系,我们还是要返回。
非常感谢任何帮助。
【问题讨论】: