首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有任何方法在Server 2005中通过文本(或ntext)来区分或分组?

是否有任何方法在Server 2005中通过文本(或ntext)来区分或分组?
EN

Stack Overflow用户
提问于 2009-06-22 16:11:44
回答 4查看 48.4K关注 0票数 28

在一个表中,我有一个名为MEMO_TEXT的列,它是一个文本数据类型。当我尝试创建视图并使用GROUP BY时,我会得到以下错误:

Server数据库错误:无法比较或排序文本、ntext和图像数据类型,除非使用的是NULL或LIKE操作符。

当我试图对查询执行一个不同的操作时,我也会得到这个错误。关于如何绕过这件事有什么想法吗?

如果您需要更多的信息,请告诉我。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-22 16:13:19

一种方法是将其转换为一个nvarchar(max)

这是一种将字符串长度增加到4,000以上的记录在案方法:

nvarchar [ ( n | max ) ] 可变长度Unicode字符串数据。N定义字符串长度,可以是1到4,000之间的值。max表示最大存储大小为2^31-1字节(2GB),存储大小(以字节为单位)是输入+2字节数据的实际长度的两倍。nvarchar的ISO同义词是国家字符的变化和民族特征的变化。

类似的技巧也适用于varchar()

票数 40
EN

Stack Overflow用户

发布于 2009-06-22 16:16:09

试试这些..。

代码语言:javascript
运行
复制
SELECT DistinctMemo = DISTINCT(CAST(MEMO_TEXT AS varchar(max)))
FROM   MyTable

-- or

SELECT DistinctMemo = CAST(MEMO_TEXT AS varchar(max))
FROM   MyTable
GROUP BY CAST(MEMO_TEXT AS varchar(max))
票数 26
EN

Stack Overflow用户

发布于 2009-06-22 17:11:48

您知道在ntext字段中永远不会重复数据吗?您可以在派生表中对其他字段执行不同的操作,然后使用ntext字段连接到表中,并在外部查询中获取它。

类似于(假设field3是ntext字段)

代码语言:javascript
运行
复制
select mt.idfield, a.field1, a.field2, mt.field3 
from mytable mt
join 
(select disitinct mt1.idfield, mt1.field1, mot.field2 from mytable mt1
join myothertable mot on mt1.idfield = mot.idfield) a 
   on a.ifield = mt.idfield
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1028061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档