我对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!
答案 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'