Вы можете использовать следующий прием, который позволяет искать значение столбца по списку, разделенному запятыми, используя LIKE
:
WHERE (',' + '28049775,28864564,28049810,27921451,29043651,30001498,27702896,27897198' + ',')
LIKE '%,' + CAST(PMID AS NVARCHAR(15)) + ',%'
Другие примечания по вашему запросу: условие dbid = 500
не относится кагрегатная функция, поэтому она лучше вписывается в предложение WHERE
, чем в предложение HAVING
.
SELECT TOP (100) PERCENT COUNT(*) AS AuthorCount, PMID, dbid
FROM dbo.[Publication.PubMed.Author]
WHERE
dbid = 500
AND (',' + '28049775,28864564,28049810,27921451,29043651,30001498,27702896,27897198' + ',')
LIKE '%,' + CAST(PMID AS NVARCHAR(15)) + ',%'
GROUP BY PMID, dbid
HAVING COUNT(*) > 1
ORDER BY PMID