加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – MAX(文本)返回操作数数据类型文本对于max运

发布时间:2020-12-12 08:56:07 所属栏目:MsSql教程 来源:网络整理
导读:我在我的一个表中使用文本数据类型,我也使用PIVOT查询. 我无法使用MAX(AttributeValue),其中AttributeValue是文本的类型.它返回以下错误操作数数据类型文本对于max运算符无效..我怎么能在这里使用它,因为我强制使用PIVOT的聚合函数. 编辑: 我跟着http://msdn
我在我的一个表中使用文本数据类型,我也使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读