我的 SQL 查询包含一个WHERE
子句看起来像这样:
WHERE
name1 in ('Emily', 'Jack', 'James', 'Chloe')
OR name2 in ('Emily', 'Jack', 'James', 'Chloe')
请注意,同一个列表出现了两次,这非常令人不满意(而且我的真实列表实际上更长)。
编写此查询的更好方法是什么?
您可以使用数组和, e.g.:
with my_table(name1, name2) as (
values ('Emily', 'Bob'), ('Ben', 'Jack'), ('Bob', 'Ben')
)
select *
from my_table
where array[name1, name2] && array['Emily', 'Jack', 'James', 'Chloe'];
name1 | name2
-------+-------
Emily | Bob
Ben | Jack
(2 rows)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)