开发者社区> 问答> 正文

不同条件的SQL条件where子句

我在存储过程中的SQL语句下方编写内容,但无法在查询中创建条件SQL。我将以下输入参数传递给存储过程

@givenDate='2019-08-08'  --Date
@boolinput1=1   --boolean datatype
@boolinput2=1   --bolean datatype
@xmonths=6      --int

select *
from employee
Where ((birthdate>=DATEADD(m, -@xmonths, @givenDate) AND @boolinput1=1) OR
      (birthdate<=@givenDate and @boolinput2=1))

当@ boolinput1 = 1和@ boolinput2 = 0或boolinput1 = 0和@ boolinput2 = 1时,上述条件将适用于个别条件

当两个条件都为真时,例如,@ boolinput1 = 1和@ boolinput2 = 1,我需要sql查询,然后在以下条件下工作,而不是部分工作

select * 
from employee
Where (birthdate>=DATEADD(m, -@xmonths, @givenDate AND @boolinput1 )

展开
收起
祖安文状元 2020-01-04 15:28:02 603 0
1 条回答
写回答
取消 提交回答
  • 如果您不希望在第一个条件的“指标”条件为true时AND @boolinput1=0使用第二个条件条件,只需将其添加到第二个条件条件中即可。

    或者,如果这是在存储过程中执行的,则在查询执行之前,如果第二个指示器为true,则可以强制第二个指示器为false。

    IF (@boolinput1=1)
       SET @boolinput2 = 0;
    
    2020-01-04 15:28:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载