我试图在Join中使用案例功能,但我无法执行查询。 我做错了什么?
left join vortex_dbo.vw_public_material_history on
CASE
WHEN vw_public_request_material_location_mir.material_request_id = (substring(vw_public_material_history.comments,12,6))
then vw_public_request_material_location_mir.material_request_id
else null
end
我希望得到的只是当我有" true"来自"当"
我觉得我在这里错过了什么。
答案 0 :(得分:0)
你的CASE
表达毫无意义。 CASE
表达式会产生一个值,例如material_request_id
中的值。所以你得到了
left join vortex_dbo.vw_public_material_history on material_request_id
如果是字符串匹配。您是否注意到此ON
子句不完整?
您可能正在寻找
left join vortex_dbo.vw_public_material_history on
vw_public_request_material_location_mir.material_request_id =
(substring(vw_public_material_history.comments,12,6))
使用表别名可以更好地阅读:
from vw_public_request_material_location_mir mir
left join vortex_dbo.vw_public_material_history hist on
mir.material_request_id = (substring(hist.comments,12,6))
关于您的数据模型:您在字符串中隐藏了ID似乎很奇怪。您可能需要重新考虑您的表格设计。