나는 다음을 쓰는 것을 발견했다.
select 'yes'
where exists(select * from foo where val=1)
and not exists(select * from foo where val<>1);
너무 많은 가독성을 희생하지 않고 더 간결한 방법이 있는지 궁금합니다.
답변으로 게시하는 한 가지 방법을 찾았지만 완전히 만족스럽지 않으며 대안에 매우 관심이 있습니다.
이 경우 val
내에서 고유합니다 foo
-중복이 없습니다
하위 쿼리 결과에서 정확히 하나의 행 을 원한다는 것을 올바르게 이해하고 있습니까?
—
Erwin Brandstetter
어떤 하위 쿼리?
—
잭 topanswers.xyz 시도라고
제목에서 언급 한 것. "명확한"이후 또는 그 이전에 하나의 결과 여야하는지 확실하지 않았습니다.
—
Erwin Brandstetter
아 그래, 하나 :) 내가 오히려 혼동 내에서 하위 쿼리를 참조 것을 대답은 - 당신은 당신은 또한 사용할 수 있습니다 예를 들어, 훨씬 더 구체적이고 유연하다
—
잭 시도는 말한다 topanswers.xyz 2018 년
count(distinct val)
내 실제 경우가 더 차이가 없지만,