日期:2014-05-18  浏览次数:20685 次

text、ntext类型的列不能用Group By 怎么办
打算用Group By 去掉完全相同的行,但是某一列是text、ntext的类型. 不能用GroupBy了..
有什么其他方法可以合并相同的行吗
谢谢

------解决方案--------------------
distinct
------解决方案--------------------
select distinct * from tb
------解决方案--------------------
用distinct就可以了,
------解决方案--------------------
完全相同可以 DISTINCT

不完全可以转换一下再GROUP BY
------解决方案--------------------
探讨
谢谢大家的回答...但是distinct也不可以用在ntext里 用的是sql server 2005
错误信息:
ntext 数据类型不能选为 DISTINCT,因为它不可比。

4楼说的转换应该怎么转换,转换的话数据有可能会丢失吗?谢谢

------解决方案--------------------
看下你这些类型的最大存储的字节数吧! 可以的话转换数据类型,换成 varchar nvarchar 然后分组去重!
------解决方案--------------------
SQL code
----------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2011-04-01 14:01:35
-- Verstion:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--    Jul  9 2008 14:43:34 
--    Copyright (c) 1988-2008 Microsoft Corporation
--    Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
--
----------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([col1] text,[col2] text)
insert [tb]
select 'a','t' union all
select 'a','t' union all
select 'a','t'
--------------开始查询--------------------------
select distinct (CAST (col1 as varchar(10))),(CAST (col2 as varchar(10))) from tb
----------------结果----------------------------
/*            
---------- ----------
a          t

(1 行受影响)

*/