我想重写WHERE a IN (<listA>) OR b IN (<listA>),这样就不必使用<listA>(我针对查询绑定的值列表)两次或更多次。这个是可能的吗?
WHERE a IN (<listA>) OR b IN (<listA>)
<listA>
ttcibm8c1#
你不能真的这么做。但是,您可以这样做:
with listA as ( select 'item1' as item union all select 'item2' union all . . . select 'itemn' ) select t.* from table t where a in (select item from listA) or b in (select item from listA);
无论如何,表达式in (<listA>)可能不会执行预期的操作。如果值为'1,2,3',则这将构成一个包含一个元素('1,2,3')的列表,而不是包含三个元素的列表。
in (<listA>)
'1,2,3'
1条答案
按热度按时间ttcibm8c1#
你不能真的这么做。但是,您可以这样做:
无论如何,表达式
in (<listA>)
可能不会执行预期的操作。如果值为'1,2,3'
,则这将构成一个包含一个元素('1,2,3'
)的列表,而不是包含三个元素的列表。