C# 如果在access+C中的何处
如何在where中执行IFF,在这里执行过滤器,在我的情况下,我希望到达值为0的参数不会影响我的查询,只需忽略它们即可C# 如果在access+C中的何处,c#,sql,ms-access,C#,Sql,Ms Access,如何在where中执行IFF,在这里执行过滤器,在我的情况下,我希望到达值为0的参数不会影响我的查询,只需忽略它们即可 可以在where语句中使用iif。但是语法一开始看起来并不直观。Where需要布尔子句,所以您应该做的是转换 IIF (@turno == 0, AND P.codTurno = @turno , ) 到 请注意,每次参数@turno的值为0时,我们都会将其更改为-1或任何您确定不在且不会在数据库中此列中的值 因此,最终您的SQL代码应该如下所示 SELE
可以在where语句中使用iif。但是语法一开始看起来并不直观。Where需要布尔子句,所以您应该做的是转换
IIF (@turno == 0, AND P.codTurno = @turno , )
到
请注意,每次参数@turno的值为0时,我们都会将其更改为-1或任何您确定不在且不会在数据库中此列中的值
因此,最终您的SQL代码应该如下所示
SELECT
P.NombreCompleto
FROM (((((((Persona AS P
LEFT JOIN MarcacionTemp AS MTemp ON P.codPersona = MTemp.codPersona)
LEFT JOIN Horario AS Ho ON MTemp.codHorario = Ho.idHorario)
LEFT JOIN TipoMarcacion AS TMar ON MTemp.codTipoMarcacion = TMar.idMarcacion)
INNER JOIN Colegio AS C ON P.codColegio = C.codColegio)
INNER JOIN Entidad AS E ON P.codEntidad = E.codEntidad)
INNER JOIN Grado AS Gr ON P.codGrado = Gr.codGrado)
INNER JOIN Paralelo AS Pa ON P.codParalelo = Pa.codParalelo)
INNER JOIN Turno AS Tu ON P.codTurno = Tu.codTurno
WHERE P.codTipo = 4
[and/or] IIF (@turno=0, -1, @turno) = P.codTurno
[and/or] IIF (@grado=0,-1, @grado) = P.codGrado
[and/or] IIF (@paralelo=0, -1, @paralelo) = P.codParalelo
如果没有,请使用内置的逻辑运算符,例如。。。和@turno=0或P.codTurno=@turno…请阅读。@AlexK。你是天才,但我只需要4个人请写下你的解决方案,非常简单good@AndrewMorton这不是问题,这些值工作得很好,请阅读说明,谢谢
IIF (@turno= 0, -1, @turno) = P.codTurno
SELECT
P.NombreCompleto
FROM (((((((Persona AS P
LEFT JOIN MarcacionTemp AS MTemp ON P.codPersona = MTemp.codPersona)
LEFT JOIN Horario AS Ho ON MTemp.codHorario = Ho.idHorario)
LEFT JOIN TipoMarcacion AS TMar ON MTemp.codTipoMarcacion = TMar.idMarcacion)
INNER JOIN Colegio AS C ON P.codColegio = C.codColegio)
INNER JOIN Entidad AS E ON P.codEntidad = E.codEntidad)
INNER JOIN Grado AS Gr ON P.codGrado = Gr.codGrado)
INNER JOIN Paralelo AS Pa ON P.codParalelo = Pa.codParalelo)
INNER JOIN Turno AS Tu ON P.codTurno = Tu.codTurno
WHERE P.codTipo = 4
[and/or] IIF (@turno=0, -1, @turno) = P.codTurno
[and/or] IIF (@grado=0,-1, @grado) = P.codGrado
[and/or] IIF (@paralelo=0, -1, @paralelo) = P.codParalelo