SQL - Выберите Запрос для сложных динамических строк

Мне нужно получить ListingId из таблицы ниже на основе условия поиска. Пожалуйста, помогите лучший способ получить запрос для условий ниже

Примечание: ListingId может иметь любое количество ExtrafieldId, поэтому поиск ListingId основан на динамическом ExtrafieldId.

If (ExtrafieldId = 1 and Value = 1) => OUTPUT - 20, 22
If (ExtrafieldId = 1 and Value = 1) and (ExtrafieldId = 2 and Value = 7) => OUTPUT - 21
If (ExtrafieldId =4and Value = 1999) => OUTPUT - 20, 21, 23

и так далее...

ListingId   ExtraFieldId    Value      
20  1   1      
20  2   4      
20  3          
20  4   1990       
21  1   2      
21  2   7      
21  3          
21  4   1990       
22  1   1      
22  2   4      
22  3          
22  4   2000       
23  1   NULL       
23  2   NULL       
23  4   1999    

Ответы на вопрос(3)

Ваш ответ на вопрос