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