簡體   English   中英

SQL Server 2008 中具有圖像數據類型的交叉表/數據透視查詢

[英]Crosstab/pivot query with Image data type in SQL Server 2008

我需要使用所有 varchar 數據類型和一種圖像數據類型的列在 SQL 服務器中執行交叉表/數據透視查詢。 我創建了一個以這種格式連接一系列表的存儲過程。 “B”是唯一可以鏈接到圖像數據的元素。 如果“B”的 DATA 字段為空白,則該行也有空白 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      

然后我使用 pivot 查詢。 理想情況下,表格應如下所示:

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

問題是圖像數據字段無法旋轉、分組、轉換等...我嘗試將圖像從二進制轉換為 varchar,但它給了我亂碼。

限制:

    1. “ELEMENTS”是動態的,因此 pivot 表的列數一直在變化。 (即它*可以* go 一直從 A 到 Z。)
    2.這些字段要在SSRS報告中使用,因此我需要維護圖像數據類型
    3.我不能使用任何其他開發語言(.NET等)

有沒有其他可能的方法來做到這一點?

因此,除了作為最后一步手動添加/創建 IMAGEDATA 列之外,似乎沒有其他方法可以做到這一點。 這是我的解決方案:

我使用了兩個單獨的表:一個沒有 IMAGEDATA 列的 pivot 表,另一個類似於上述問題中顯示的第一個表。 對 pivot 表進行查詢后,我將其放入一個臨時表中,添加一個具有 IMAGE 數據類型的列,並進行匹配以填充 IMAGEDATA 列。

似乎是一個簡單的解決方案,但它幾乎不可維護且效率不高。 我不太依賴於將 IMAGEDATA 與其他字段匹配,如果我決定更多的 ELEMENTS 將具有 IMAGEDATA 怎么辦?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM