如何在 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))
)
我有一个相当长的 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))
)