2016-08-18 19 views
1

image数据类型上执行聚合函数的最佳方式是什么?带图像数据类型的聚合函数

例如,在binImage是image数据类型,我想回到要么binImage或空:

max(case when somechar = 'A' and anotherchar = 'B' then binImage else null end) as result 

...是行不通的,因为max不支持图像数据类型。

我知道image已折旧。

+0

您是否使用'MAX'来任意取得单个结果? – Nicarus

+0

@尼卡罗斯,不完全是“任意”。 “count”不会返回图像,也不会返回“sum”或“min”等。但是,是的,我试图得到一个结果 - 因此需要某种聚合函数。 –

回答

2

无论如何,图片实际上只是一个varbinary,所以只需将它投射出去,然后在需要时将其投回。这里是一个例子,向你展示它的工作原理。

DECLARE @Table AS TABLE (I IMAGE) 

INSERT INTO @Table (I) VALUES (CAST('abcdefghi' AS IMAGE)),(CAST('abcdefghi' AS IMAGE)),(CAST('abcdefghi' AS IMAGE)) 


SELECT CAST(MAX(CAST(I AS VARBINARY(MAX))) AS IMAGE) as Img 
FROM 
    @Table