CASE在何处子句SQL

时间:2019-05-09 03:04:21

标签: sql oracle-sqldeveloper

我对SQL查询进行了一定的验证。

WHERE USER_ACTIVE = 'Y'

但是我希望仅当我的FLAG设置为TRUE时才会显示此验证。

类似,当FLAG设置为true时,检查user_active列。 如果FLAG为假,则无需进行验证即可。

在下面尝试过,但我认为不可能

WHERE CASE WHEN FLAG = 'TRUE' then USER_ACTIVE = 'Y' else ' ' END

有没有reco?

感谢IA!

2 个答案:

答案 0 :(得分:2)

逻辑是这样的:

WHERE USER_ACTIVE = 'Y' OR @FLAG <> 'TRUE'

答案 1 :(得分:0)

您还可以将CASE与WHERE一起使用。只是指出,CASE语句仅根据条件分配值。因此,您需要在分配完成后进行比较。尝试这样的事情:

WHERE (CASE WHEN FLAG = 'TRUE' then USER_ACTIVE else ' ' END) = 'Y'
相关问题