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

How do I write a condition within an SQL Select statement

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

如果 pupiltype 值=1,我需要查询中的一行是:

 AND tbl_4.status=1

但是如果pupiltype值为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...

干杯

像这样:

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