DISTINCT关键字不能在SQL服务器中使用图像数据类型
问题描述:
我在使用下面的查询从SQL Server表中提取记录时,在SQL查询中使用DISTINCT
。DISTINCT关键字不能在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
关键字它工作正常。
为什么会发生这种情况?
答
IMAGE
数据类型是固定的,并用于 存储二进制数据时,对使用IMAGE
数据的限制可变长度的数据类型 类型是,此数据类型的定义的列不能被用作的一部分SELECT
语句,其包括可以用在DISTINCT
SELECT
-
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
希望它能帮助。
自从近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
@Chris - 我了解错误消息,但我正在寻找另一种方法来实现此目的。因为我试图将'profileImage'字段转换为'varchar',但它也失败:( – prog1011 2014-10-29 11:31:07
转换为'VARBINARY' – 2014-10-29 11:33:19