Выберите строки, которые должны содержать определенные значения

Почему это происходит?

Поскольку {} и do / end имеют разный приоритет. {} является «более сильным». Как в «связано с ближайшим вызовом метода». Таким образом, этот

p foo {
  something
}

виден следующим образом.

p (foo {
  something
})

И do / end выглядит так

p(foo) do
  something
end

Нет ошибки, просто пропустите часть кода

Да, из-за другой функции рубина. Что означает «вы можете передать блок методу ЛЮБОЙ, а затем этот метод должен использовать или игнорировать его». Здесь p не ожидает блока и просто игнорирует его.

1
задан Jason Aller 19 January 2019 в 17:08
поделиться

1 ответ

Использование HAVING:

SELECT Document
FROM @TableA A
JOIN @TableB B
  ON B.IdWord = A.IdWord
WHERE Word IN ('A', 'B','C', 'E')
GROUP BY Document
HAVING COUNT(DISTINCT CASE WHEN Word IN ('A','B', 'C') THEN Word END) = 3
    OR COUNT(DISTINCT CASE WHEN Word IN ('E') THEN Word END) = 1

db <> демонстрация fiddle

0
ответ дан Lukasz Szozda 19 January 2019 в 17:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: