2016-08-18 64 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