Могу ли я использовать DISTINCT в предложении OUTPUT? - PullRequest
7 голосов
/ 17 мая 2011

Я пытаюсь что-то вроде:

INSERT INTO MyTable (
       Col1
      ,Col2 )
OUTPUT DISTINCT -- issue is with DISTINCT
       INSERTED.Col1
      ,@otherParameter
       INTO IdListTable
SELECT ColA
      ,ColB
      ,SUM(ImportantNumber)
FROM MyOtherTable
GROUP BY ColA, ColB

Кроме того, что SQL не хочет, чтобы я использовал DISTINCT в предложении OUTPUT.Обходной путь, о котором я думал, состоял в том, чтобы создать временную таблицу для вывода, затем INSERT DISTINCT в IdListTable.Есть идеи по поводу другого обходного пути?

1 Ответ

6 голосов
/ 17 мая 2011

Замените IdListTable временной таблицей (или табличной переменной в зависимости от количества строк) в операторе Output.Затем запустите второй оператор Insert в IdListTable из временной таблицы с помощью Select Distinct.

INSERT INTO MyTable (
       Col1,
       Col2 )
OUTPUT 
       INSERTED.Col1,
       @otherParameter
       INTO #tempIdListTable
SELECT ColA,
       ColB,
       SUM(ImportantNumber)
FROM MyOtherTable
GROUP BY ColA, ColB

Insert into IdListTable
Select distinct col1, col2 from #tempIdListTable
...