Как я могу выбрать никакие строки, если какая-либо строка в наборе результатов удовлетворяет определенному условию?Выберите «Нет строк», если любая строка соответствует условиям?
Например:
Id|SomeColumn|Indicator
1 | test | Y
1 | test1 | Y
1 | test2 | X
2 | test1 | Y
2 | test2 | Y
3 | test1 | Y
сказать, что я хотел, чтобы выбрать все строки, где Id = 1, если нет строки с индикатором = X
В настоящее время я делаю что-то вроде этого
SELECT * FROM SOMETABLE WHERE ID = 1 AND INDICATOR = 'Y' AND ID NOT IN (SELECT ID WHERE INDICATOR = 'X')
Но это кажется очень неуклюжим, и я чувствую, что может быть лучший способ сделать это. Является ли я слишком чрезмерно чувствительным?
Вы можете оставить 'INDICATOR = 'Y'' из' WHERE', но в остальном это нормально. –