DISTINCT关键字无法在sql server中使用Image数据类型

时间:2014-10-29 11:26:57

标签: c# sql sql-server sql-server-2008

我在使用以下查询从SQL Server表中获取记录时在SQL查询中使用DISTINCT

SELECT  DISTINCT firstname, lastname, profileImage 
from employee

profileImage 在我的表格中的image数据类型。

问题:

当我尝试在查询中使用DISTINCT从表中获取数据时,会出现以下错误。

  

消息421,级别16,状态1,行1图像数据类型不能   被选为DISTINCT,因为它不具有可比性。

当我从查询中删除DISTINCT关键字时,它可以正常工作。

为什么会这样?

1 个答案:

答案 0 :(得分:4)

  • IMAGE数据类型是固定的,可变长度数据类型用于 存储二进制数据,使用IMAGE数据的限制之一 type是此数据类型定义的列不能用作部分 在SELECT

  • 中使用DISTINCT可能遇到包含DISTINCT子句错误消息的SELECT语句
  • IMAGE数据类型可以转换为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

希望它有所帮助。