SQL:无法比较或排序Grouptext,ntext和image数据类型

时间:2012-08-31 14:02:51

标签: sql sql-server

下面是一个sql语句和我收到的错误。我想按prodID对所有退回的商品进行分组。

错误:

  

无法比较或排序text,ntext和image数据类型,   除了使用IS NULL或LIKE运算符时。

说明:

 SELECT TOP 20 
         PRODID, ITEMDES
         FROM orderedItems oi
         left join orders o on  oi.order_id = o.order_id
    Group by PRODID, ITEMDES

2 个答案:

答案 0 :(得分:9)

不,他们不能。此外,它们已被弃用,支持(n)varchar(max)类型。

如果您需要对它们进行分组,请将数据结构从(n)text更改为(n)varchar(max),或在您的组子句中进行转换

 GROUP BY ProdID, CONVERT(nvarchar(max), ItemDes)

答案 1 :(得分:0)

如果ITEMDES是TEXT或blob,您可以使用ROW_NUMBER()避免GROUP BY:

select TOP 20 * from 
(

SELECT 
         PRODID,ITEMDES,
         ROW_NUMBER() over (partition by PRODID order by o.order_id) rn
         FROM orderedItems oi
         left join orders o on  oi.order_id = o.order_id
) as t 
where rn=1
order by PRODID; -- any order here you wish