DISTINCT关键字不能在SQL服务器中使用图像数据类型

问题描述:

我在使用下面的查询从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

  • 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