我需要使用所有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,但它给了我乱码。
限制:
还有其他可能的方法吗?
答案 0 :(得分:0)
所以似乎除了手动添加/创建IMAGEDATA列作为最后一步之外没有其他方法可以做到这一点。这是我的解决方案:
我使用了两个单独的表:一个没有IMAGEDATA列的数据透视表,另一个类似于上面问题中显示的第一个表。在我对数据透视表进行查询后,我将其放入临时表中,添加了一个包含IMAGE数据类型的列,并将匹配项填入IMAGEDATA列。
似乎是一个简单的解决方案,但它难以维护,也不具备效率。我不是很依赖IMAGEDATA和其他领域,如果我决定更多的ELEMENTS会有IMAGEDATA怎么办?