我试图弄清楚如何过滤我的输出"组合"案件。我的前两个陈述运作良好,并为我提供了我想要的课程(即滑雪者能力水平的滑雪课程和未经评估的私人课程)。我的第三个声明(inPreferredLessonType = 3,即滑雪板或滑雪板)无法正确过滤输出设置 - 我将获得任何滑雪课程或滑雪课程,其各种能力水平与滑雪者的两个相匹配(分别能力水平。不是正确的想法,而且让用户感到困惑。
我喜欢的是获得滑雪者滑雪板能力水平的单板滑雪课程+滑雪者滑雪能力水平的滑雪课程+未经评级的私人课程。请帮忙!
(...... SELECT语句的其余部分......)
CASE
WHEN inPreferredLessonType = 1
THEN program.nBool_isSnowboard = 0 AND
(program.n_ability_level = inSkiAbilityLevel OR program.n_ability_level = 0)
WHEN inPreferredLessonType = 2
THEN program.nBool_isSnowboard = 1 AND
(program.n_ability_level = inSnowboardAbilityLevel OR program.n_ability_level = 0)
WHEN inPreferredLessonType = 3
THEN program.n_ability_level = inSkiAbilityLevel
OR program.n_ability_level = inSnowboardAbilityLevel
OR program.n_ability_level = 0
END
(...其余的过滤语句,ORDER BY等)
答案 0 :(得分:0)
原来我只需要将条件括起来并过滤滑雪与滑雪板的能力水平。
WHEN inPreferredLessonType = 3
THEN (program.nBool_isSnowboard = 0 AND program.n_ability_level = inSkiAbilityLevel)
OR
(program.nBool_isSnowboard = 1 AND program.n_ability_level = inSnowboardAbilityLevel)
OR
program.n_ability_level = 0