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

SQL中用大于小于条件关联两张表的写法是否正确?

你的SQL写法完全正确,JOIN中可以使用大于/小于这类比较运算符
  • 你这里用的是非等值连接(Non-equijoin),这是SQL中完全合法的连接方式,和常见的等值连接(比如ON E.Id = T.EmployeeId)一样被所有主流数据库支持。
  • 你的逻辑清晰:通过E.Salary >= T.LowerSalaryRange and E.Salary < T.HigherSalaryRange精准匹配薪资对应的税率区间,从你给出的测试数据来看,执行结果会是正确的:
    • David的薪资1200匹配到税率0.3,计算结果为1200 * 0.3 = 360
    • Felix的薪资2200匹配到税率0.4,计算结果为2200 * 0.4 = 880

额外注意事项

  • 要确保Tax表的薪资区间没有重叠且覆盖所有可能的薪资范围,否则会出现一个员工匹配到多个税率(结果重复)或者完全匹配不到(结果缺失)的问题。比如你当前的区间在2000和2001之间有个缺口,如果有员工薪资是2000,就会匹配不到任何税率,需要调整区间逻辑(比如把第二个区间的Lower设为2000,条件改成E.Salary <= T.HigherSalaryRange)。
  • 如果需要展示员工姓名等更多信息,可以在SELECT语句中添加对应字段,比如SELECT E.Employee, E.Salary, T.TaxRate, E.Salary * T.TaxRate AS TaxAmount。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:22:48