【问题标题】:Crosstab/pivot query with Image data type in SQL Server 2008SQL Server 2008 中具有图像数据类型的交叉表/数据透视查询
【发布时间】:2011-06-01 17:19:47
【问题描述】:

我需要使用所有 varchar 数据类型和一种图像数据类型的列在 SQL Server 中执行交叉表/数据透视查询。我创建了一个以这种格式连接一系列表的存储过程。 “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      

然后我使用数据透视查询。理想情况下,表格应如下所示:

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

问题是图像数据字段无法旋转、分组、转换等...我尝试将图像从二进制转换为 varchar,但它给了我乱码。

限制:

    1.“元素”是动态的,因此数据透视表的列数总是在变化。 (即它*可以*从 A 到 Z。)
    2. 字段要在SSRS报告中使用,因此我需要维护图像数据类型
    3.我不能使用任何其他开发语言(.NET等)

还有其他可能的方法吗?

【问题讨论】:

    标签: sql sql-server image pivot crosstab


    【解决方案1】:

    因此,除了作为最后一步手动添加/创建 IMAGEDATA 列之外,似乎没有其他方法可以做到这一点。这是我的解决方案:

    我使用了两个单独的表:一个没有 IMAGEDATA 列的数据透视表,另一个类似于上面问题中显示的第一个表。对数据透视表进行查询后,我将其放入一个临时表中,添加一个具有 IMAGE 数据类型的列,并进行匹配以填充 IMAGEDATA 列。

    似乎是一个简单的解决方案,但它很难维护也很高效。我不太依赖于将 IMAGEDATA 与其他字段匹配,如果我决定更多的 ELEMENTS 将具有 IMAGEDATA 怎么办?

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      相关资源
      最近更新 更多