通过某些条件在where子句中存在SQL验证

时间:2019-05-14 06:50:46

标签: sql oracle case

嗨,我正在尝试对where子句进行验证。但是,只有在满足特定条件时,才需要存在此验证,否则我就不需要此验证。

我尝试过,但没有得到预期的输出。也许我错过了什么?请帮助

 WHERE (CASE
           WHEN 1 = (SELECT DECODE (PARAMETER_VALUE, 'FALSE', 1, 2)
                       FROM TABLE_A
                      WHERE PARAMETER_NAME = 'STUDENT_STATUS')
           THEN
              INVALID_STAT
           ELSE
              ' '
        END) = 'Y'

1 个答案:

答案 0 :(得分:0)

如何将最后一个' '替换为'Y'。因此,当查询返回结果时,它将转换为

WHERE INVALID_STAT = 'Y'

当查询不返回任何结果时,它将转换为-

WHERE 'Y' = 'Y'

因此忽略条件。