select Mid,title1,detail1,photopath,changedate,
tb_main.username,tb_main.re,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.re,sortA,sortB,MGood,KunNan报错:
服务器: 消息 306,级别 16,状态 2,行 1不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
注:tb_main.Mid 是自动编号,而tb_pl.MainID是vacher类型.不知道是不是因为两个类型不同,以至出错。。有解决方法吗??谢谢!!!

解决方案 »

  1.   

    应该是你 detail1 是text类的字段吧。如果这个里面内容不多,而你又一定要group by这个字段的话,
    那么可以试试 cast(detail1 as varchar(max))转换后进行查询。
      

  2.   

    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)