5

下面是一个 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
4

2 回答 2

9

不,他们不能。此外,不推荐使用它们以支持(n)varchar(max)类型。

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

 GROUP BY ProdID, CONVERT(nvarchar(max), ItemDes)
于 2012-08-31T14:22:28.093 回答
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
于 2012-08-31T14:24:22.753 回答