在 SQL 中涉及不同比较运算符的 JOIN 子句中组合 CASE 语句

问题描述 投票:0回答:1

我有两个 SELECT 语句,并希望根据输入参数将它们组合成一个 JOIN 语句:@UseFirstOne = true。 如果 @UseFirstOne 为 true,则我们在第一个条件下加入,如果为 false,则我们在第二个条件下加入。

1.

    JOIN X.[Employee] emp 
     ON emp.EmployeeId = @EmployeeId
     AND emp.BirthYear = @BirthYearFromParam
    JOIN X.[Employee] emp 
     ON emp.EmployeeId = @EmployeeId
     AND emp.BirthYear < @CurrentYear OR (emp.BirthYear = @CurrentYear AND emp.BirthMonth < @CurrentMonth)

如何将它们组合成一个 JOIN 语句?

sql sql-server join case inner-join
1个回答
0
投票
AND ((
@UseFirstOne = 1 AND emp.BirthYear = @BirthYearFromParam)
OR (
@UseFirstOne =0 AND (emp.BirthYear < @CurrentYear OR (emp.BirthYear = @CurrentYear AND emp.BirthMonth < @CurrentMonth)
))
© www.soinside.com 2019 - 2024. All rights reserved.