我有一个表,其中包含像这样的列:
id,col1,col2,col3,col4 现在,我想检查ANY的col1, col2, col3, col4具有价值的传递。
做这件事的路很长。
SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123); 我猜这是的相反版本IN。
有更简单的方法来做我想要的吗?
您可以使用IN谓词,如下所示:
SELECT * FROM table WHERE 123 IN(col1, col2, col3, col4); SQL小提琴演示 它是IN的相反版本。
不,不是,它与OR您在问题中的使用方式相同。
为了澄清这一点: 谓词IN或集合成员资格定义为1:
在此处输入图片说明
其中Value Expression可以是2:
在此处输入图片说明
因此,使用值表达式123(即字面量)可以这样做。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。