sql-server-2008 – MAX(文本)返回操作数数据类型文本对于max运算符无效.在sql server 2008中

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – MAX(文本)返回操作数数据类型文本对于max运算符无效.在sql server 2008中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的一个表中使用文本数据类型,我也使用PIVOT查询.
我无法使用MAX(AttributeValue),其中AttributeValue是文本的类型.它返回以下错误操作数数据类型文本对于max运算符无效..我怎么能在这里使用它,因为我强制使用PIVOT的聚合函数.

编辑:
我跟着http://msdn.microsoft.com/en-us/library/ms187993.aspx

我试图将数据类型转换为nvarchar(max).

ALTER TABLE dbo.MyTable
ALTER COLUMN AttributeValue NVARCHAR(MAX)

此外,我也必须使用全文搜索选项.我收到以下错误
无法更改或删除列’AttributeValue’,因为它已启用全文搜索.

SELECT 
 [6B93119B-263B-4FED-AA89-198D26A3A3C4] DOB,[F1A0D9D6-702E-4492-9EBC-63AD22E60E6A] CaseTitle 
FROM MyTable PIVOT 
(   MAX(AttributeValue) 
    FOR AttributeID IN 
    (
         [6B93119B-263B-4FED-AA89-198D26A3A3C4],[F1A0D9D6-702E-4492-9EBC-63AD22E60E6A]
    ) 
) ResultTable

其中’AttributeValue’是’text’数据类型.我收到以下错误,

操作数数据类型文本对于max运算符无效.

好吧,我试着将字段转换为nvarchar(max).它给出了另一种类型的错误(在第四行).

Incorrect Syntax near '('

我错过了什么吗?

解决方法

您可以将文本列转换为varchar(max).
select max(cast(AttributeValue as varchar(max)))
from YourTable

您可以在子查询中转换数据.

SELECT 
 [6B93119B-263B-4FED-AA89-198D26A3A3C4] DOB,[F1A0D9D6-702E-4492-9EBC-63AD22E60E6A] CaseTitle 
FROM ( SELECT AttributeID,CAST(AttributeValue as VARCHAR(MAX)) as AttributeValue
       FROM MyTable
     ) AS T
  PIVOT 
(   MAX(AttributeValue) 
    FOR AttributeID IN 
    (
         [6B93119B-263B-4FED-AA89-198D26A3A3C4],[F1A0D9D6-702E-4492-9EBC-63AD22E60E6A]
    ) 
) ResultTable

猜你在找的MsSQL相关文章