Кросс-таблица / сводный запрос с типом данных изображения в SQL Server 2008 - PullRequest
0 голосов
/ 01 июня 2011

Мне нужно выполнить кросс-таблицу / сводный запрос в SQL Server, используя столбцы всех типов данных varchar и один тип данных изображения. Я создал хранимую процедуру, которая объединяет ряд таблиц в этом формате. «B» единственный элемент, который может быть связан с данными изображения. Если поле DATA для «B» не заполнено, то для этой строки также есть пустые IMAGEDATA.

  OBJID    CONTAINERID    ELEMENT   DATA     IMAGEDATA   
  1        11             A         a123     NULL
  1        12             A         aa123    NULL
  1        11             B         b123     0XFFD8FFE       
  1        12             B         bb123    0XFFD8FFE       
  1        11             C         c123     NULL      

Тогда я использую сводный запрос. В идеале таблица должна выглядеть так:

  OBJID    CONTAINERID    A       B       C      IMAGEDATA   
  1        11             a123    b123    c123   0XFFD8FFE       
  1        12             aa123   bb123          0XFFD8FFE        

Проблема заключается в том, что поля данных изображения нельзя поворачивать, группировать, преобразовывать и т. Д. Я пытался преобразовать изображение в varchar из двоичного файла, но это дает мне бессмысленную информацию.

Ограничения:

Есть ли другой возможный способ сделать это?

1 Ответ

0 голосов
/ 09 июня 2011

Так что, похоже, нет другого способа сделать это, кроме как вручную добавить / создать столбец IMAGEDATA в качестве последнего шага.Вот мое решение:

Я использовал две отдельные таблицы: одну сводную таблицу без столбца IMAGEDATA и другую таблицу, аналогичную первой, показанной в приведенном выше вопросе.После того как я сделал запросы для сводной таблицы, я поместил ее во временную таблицу, добавил столбец с типом данных IMAGE и сопоставил данные, чтобы заполнить столбец IMAGEDATA.

Похоже на простое решение, но вряд ли оно обслуживаемо и не эффективно.Я не очень полагаюсь на сопоставление IMAGEDATA с другими полями, и что если я решу, что больше элементов будет иметь IMAGEDATA?

...