我在组合 LINQ 查询(将根据邮政编码连接表)时遇到一些问题。我需要根据客户的邮政编码是否位于由 ZIPBEG 和 ZIPEND 列确定的邮政编码范围内来加入表。
T-SQL 看起来像这样:
JOIN [ZipCodeTable] [zips]
ON [customer].[zipcode] BETWEEN [zips].[ZIPBEG] AND [zips].[ZIPEND]
-- or
JOIN [ZipCodeTable] [zips]
ON [zips].[ZIPBEG] <= [customer].[zipcode]
AND [zips].[ZIPEND] >= [customer].[zipcode]
您无法专门根据此条件进行联接,官方支持的唯一一种联接是基于相等的联接,而您在 T-SQL 中的条件不符合这种联接。
相反,您必须执行笛卡尔积,然后根据适当的条件进行过滤:
from c in customers
from z in zips
where
z.ZipBeg <= c.ZipCode && c.ZipCode <= z.ZipEnd
select
c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)