Вам понадобятся отдельные запросы.Это можно сделать одним запросом, но это будет чрезвычайно сложно и, вероятно, крайне неэффективно.Чтобы дать краткий пример такого (ужасного) запроса для справки:
SELECT [stuff]
FROM [stuff2: tables, joins, etc....]
WHERE [condition1]
OR ([condition2] AND NOT EXISTS (SELECT * FROM [stuff2... yes, copy everything from the first stuff2] WHERE [condition1]))
OR ([condition3] AND NOT EXISTS (SELECT * FROM [stuff2] WHERE [condition1] OR [condition2]))
OR ([condition4] AND NOT EXISTS (SELECT * FROM [stuff2] WHERE [condition1] OR [condition2] OR [condition3]))
and so on...
Так что просто запрашивайте каждое такое условие отдельно, пока не получите результаты или не выполните условия для проверки.