我有一个选择的前1个子查询,如果a = @a b <> @ b,则必须具有where子句,如果a <> @a然后b = @b
我正在尝试从子查询中获取前1个日期,该日期是(a = @a和b <> @b)或(a <> @a和b = @b )。
我已经看过使用CASE了,但是如果满足条件,它期望一个值,而不是一个语句。我已经尝试过IF条件。.开始...结束并无法正常工作
WHERE (T.Competition_Idx = TC.PtsCompID And TC.PtsMale = @histMale And TC.PtsFemale <> @histFemale And TE.StylID = @histStyle)
OR (T.Competition_Idx = TC.PtsCompID And TC.PtsMale <> @histMale And TC.PtsFemale = @histFemale And TE.StylID = @histStyle)
ORDER BY T.Comp_Date DESC),@histStartDate)
我应该得到一个满足a = @a和b = @b的条件的日期,但是我得到的是最后一条记录的日期
答案 0 :(得分:0)
我不知道问题与代码有什么关系。
但是可选参数的正常逻辑如下:
where (@a is null or a = @a) or
(@b is null or b = @b)
我不确定这是否是您想要的。否则,您的逻辑直接翻译为:
where (@a = a and @b <> b) or
(@a <> a and @b = b)