首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql报错不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。该如何处理

2012-03-28 
sql报错不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。select Mid,title

sql报错不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
select Mid,title1,detail1,photopath,changedate,
tb_main.username,tb_main.remark,sortA,sortB,MGood,KunNan,
count(*) AS PLNum 
from tb_main 
left join tb_pl on tb_main.Mid = tb_pl.MainID
group by Mid,title1,detail1,photopath,changedate,tb_main.username,tb_main.remark,sortA,sortB,MGood,KunNan

报错:
服务器: 消息 306,级别 16,状态 2,行 1不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。


注:tb_main.Mid 是自动编号,而tb_pl.MainID是vacher类型.不知道是不是因为两个类型不同,以至出错。。有解决方法吗??谢谢!!!


[解决办法]
应该是你 detail1 是text类的字段吧。

如果这个里面内容不多,而你又一定要group by这个字段的话,
那么可以试试 cast(detail1 as varchar(max))转换后进行查询。
[解决办法]
tb_main.Mid 是自动编号,而tb_pl.MainID是vacher类型

两个类型不同,你如何做条件比较?

on tb_main.Mid = tb_pl.MainID

至少要改为
on cast(tb_main.Mid as varchar) = tb_pl.MainID

on tb_main.Mid = cast(tb_pl.MainID as int)

热点排行