Как отфильтровать любую комбинацию из двух списков в SQL?

Допустим, у меня есть list1 (1,2,3,4,5,6,7,8,9) и list2 ('a','b','c','d'), как я могу отфильтровать строки где column1 равно любым значениям в list1, а column2 равно любым значениям в list2 одновременно?

Что-то вроде:

select * from table1
where (column1 not in (1,2,3,4,5,6,7,8,9) and column2 not in ('a','b','c','d'))
or (column1 in (1,2,3,4,5,6,7,8,9) and column2 not in ('a','b','c','d'))
or (column1 not in (1,2,3,4,5,6,7,8,9) and column2 in ('a','b','c','d'))
select * from table1
except
select * from table1
where column1 in (1,2,3,4,5,6,7,8,9) and column2 in ('a','b','c','d')

это будет работать в Амазонке Афины

Спасибо

1 ответ

Решение

отфильтровать строки, где column1 равно любым значениям в list1, а column2 равно любым значениям в list2


Это означает:

select * from table1
where (column1 not in (1,2,3,4,5,6,7,8,9) and column2 not in ('a','b','c','d'))


редактировать

Когда column1 имеет значение в list1, отфильтруйте эту строку, если column2 имеет значение в list2


Это означает:

select * from table1
where (column1 not in (1,2,3,4,5,6,7,8,9) or column2 not in ('a','b','c','d'))
Другие вопросы по тегам