Как просто записать несколько строк в подзапросе?Выбор нескольких жестко закодированных строк с подзапросом
Я знаю, что я мог сделать (How to select several hardcoded SQL rows?):
SELECT x.id, SUM(ISNULL(OtherTable.count_column,0))
FROM (SELECT 12 AS id
UNION
SELECT 21 AS id
UNION
SELECT 101 AS id
/*AND so on */
) AS x
LEFT JOIN OtherTable ON x.id = OtherTable.id
Group BY x.id
Есть менее неуклюжий и многословный способ сделать это?
То, что я действительно ищу это:
SELECT id, SUM(ISNULL(count_column,0)) FROM OtherTable
WHERE id IN (12, 21, 101,/*And So On*/)
GROUP BY id
В этом случае она не включает сумму 0 для идентификаторов, которые не существуют. Есть ли способ включить идентификаторы, которые не были найдены?
Я заметил PIVOT
для SQL Server, но я не уверен, что это делает его более простым/менее подробным.
Я думаю, я просто спрашиваю, есть ли лучший способ?
Я должен был понятнее, это были просто ID не диапазон. Я отредактирую вопрос. – rileymat