SQL SERVER ntext、image等无法使用DISTINCT

        我们常用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;

       这样就不报错了

发布了109 篇原创文章 · 获赞 42 · 访问量 57万+

猜你喜欢

转载自blog.csdn.net/sinat_28984567/article/details/98952682