Как отфильтровать любую комбинацию из двух списков в SQL? - PullRequest
0 голосов
/ 02 февраля 2019

Допустим, у меня есть 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 Ответ

0 голосов
/ 02 февраля 2019

отфильтровывает строки, где 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'))

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

Когда столбец1 имеет значение в списке1, отфильтруйте эту строку, если столбец2 имеет значение в списке2

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

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