2014-10-29 35 views
2

我在使用下面的查詢從SQL Server表中提取記錄時,在SQL查詢中使用DISTINCTDISTINCT關鍵字不能在SQL服務器中使用圖像數據類型

SELECT DISTINCT firstname, lastname, profileImage 
from employee 

profileImage是在我的表image數據類型。

問題:

當我試圖從我的查詢中使用DISTINCT表中提取的數據給出了下面的錯誤。

Msg 421, Level 16, State 1, Line 1 The image data type cannot be selected as DISTINCT because it is not comparable.

當我從我的查詢中刪除DISTINCT關鍵字它工作正常。

爲什麼會發生這種情況?

+1

自從近10年前發佈的產品** 2005 **版以來,以下通知已應用於[documentation](http://msdn.microsoft.com/zh-CN/library/) ms187993(v = sql.90).aspx):「將在未來版本的Microsoft SQL Server中刪除ntext,text和image數據類型。避免在新開發工作中使用這些數據類型,並計劃修改當前使用它們「 – 2014-10-29 11:30:43

+0

@Chris - 我瞭解錯誤消息,但我正在尋找另一種方法來實現此目的。因爲我試圖將'profileImage'字段轉換爲'varchar',但它也失敗:( – prog1011 2014-10-29 11:31:07

+1

轉換爲'VARBINARY' – 2014-10-29 11:33:19

回答

4
  • IMAGE數據類型是固定的,並用於 存儲二進制數據時,對使用IMAGE數據的限制可變長度的數據類型 類型是,此數據類型的定義的列不能被用作的一部分 SELECT語句,其包括可以用在DISTINCTSELECT

  • IMAGE數據類型可能遇到的DISTINCT子句錯誤消息可以被轉換爲VARBINARY數據類型。如下,該 SELECT陳述早些時候包含DISTINCT子句可以 被改寫,避免錯誤信息:

    SELECT DISTINCT CAST([ProfileImage] AS VARBINARY(8000)) AS [ProfileImage] 
    FROM [dbo].[table] 
    

請參考以下鏈接: http://www.sql-server-helper.com/error-messages/msg-421.aspx

希望它能幫助。

+2

嗨SDK。雖然鏈接可能回答問題鏈接,但只有答案是不被接受的。鏈接很好,但也將該網頁的關鍵點放入您的答案中。這樣,如果內容移動,或他們的網站爆炸你的答案仍然有用。 – Chris 2014-10-29 11:37:52

+1

謝謝,下次我會糾正我的錯誤,這裏是我更新的答案 – SDK 2014-10-29 11:42:59

相關問題