如何在 SQL Select 语句中编写条件

时间:2021-05-18 20:50:21

标签: mysql sql stored-procedures

我有一个相当长的 SQL 查询,可以从存储过程中编写的数据库中提取一些值。我正在传递一个名为 studenttype 的 IN 参数,该参数将 =0 或 =1。

如果瞳孔类型值=1,我需要查询中的一行:

 AND tbl_4.status=1

但如果瞳孔类型值为0,则需要:

 AND (tbl_4.status=0 OR tbl_5.ID IS NOT NULL)

我可以在我的整个查询中添加一个条件,但这意味着重复了很多感觉不必要的其他代码行。有没有办法将这个条件语句放在 SQL 语句本身的这一行附近以运行不同的 AND 语句?

例如...:

WHERE tbl_1.sID=sID
    AND tbl_2.spID=spID 
    AND tbl_3.progress!=''
    AND tbl_4.status=1; // It's this line I need to be varied...

干杯

1 个答案:

答案 0 :(得分:0)

像这样:

( (pupiltype = 0 and tbl_4.status = 1) or
  (pupiltype = 1 and (tbl_4.status = 0 OR tbl_5.ID IS NOT NULL))
)