You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储过程SQL关联条件改写:判断字段等于两值其一的语法

解决方案

没问题,这事儿很简单,把JOIN条件里的AND换成OR就行,不过得给OR的两个条件套个括号,保证逻辑不会乱。修改后的SELECT语句应该是这样的:

SELECT expectedValue 
FROM dbo.ExclusionValues ev 
JOIN dbo.StagingData sd 
  ON ev.ExpectedVale = sd.ProductMainType 
  AND (ev.Exclusion1 = sd.CollateralType OR ev.Exclusion2 = sd.CollateralType)

逻辑解释

原来的条件要求sd.CollateralType同时等于ev.Exclusion1和ev.Exclusion2——这只有当Exclusion1和Exclusion2的值完全相同时才会匹配到数据,显然不是你要的效果。

换成OR之后,只要sd.CollateralType匹配ev.Exclusion1或者ev.Exclusion2中的任意一个,就能满足连接条件。加上括号是因为SQL里AND的优先级比OR高,如果不加括号,逻辑会变成:
(ev.ExpectedVale = sd.ProductMainType AND ev.Exclusion1 = sd.CollateralType) OR ev.Exclusion2 = sd.CollateralType
这会导致即使ProductMainType不匹配,只要Exclusion2和CollateralType匹配就会返回结果,完全偏离你的需求。

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:14:01