我们常用DISTINCT来去重,但是sql中有的字段类型是不允许用DISTINCT的,例如ntext,image等
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([userid] int,[username] nvarchar(22),[cardcode] nvarchar(22),[aliasname] ntext)
Insert #T
select 11,N'张三',N'AA',null union all
select 12,N'李四',N'bb',N'dog' union all
select 11,N'张三',N'AA',null
Go
--测试数据结束
SELECT DISTINCT * FROM #T
结果:
我们看到这样就报错了,处理这种情况,要把ntext类型转换一下,转成nvarchar类型
SELECT DISTINCT userid,
username,
cardcode,
CONVERT(NVARCHAR(MAX), aliasname) AS aliasname
FROM #T;
这样就不报错了