使用GROUP BY子句时MSSQL 2000数据库错误

时间:2017-07-14 05:07:37

标签: sql sql-server

尝试运行以下查询以提取数字列的第一个实例时:

SELECT number, comment
FROM workitem
WHERE (NOT (status_lookup_id IN (400, 600))) 
  AND (modified_on < DATEADD(dd, - 5, GETDATE())) 
  AND (due_on < GETDATE())
GROUP BY number, comment

我收到以下错误:

  

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

我理解为什么会抛出错误,我想,但我需要来自评论专栏的信息。有没有其他方法来获取这些数据?

3 个答案:

答案 0 :(得分:2)

你可以施放&amp;然后使用如下:

SELECT     cast(number as varchar(max)), cast(comment as varchar(max))
FROM         workitem
WHERE     (NOT (status_lookup_id IN (400, 600))) AND (modified_on < 
DATEADD(dd, - 5, GETDATE())) AND (due_on < GETDATE())
GROUP BY cast(number as varchar(max)), cast(comment as varchar(max))

它会截断评论&amp;数字,如果它超过允许char

答案 1 :(得分:1)

这不是因为Group By,而是您尝试分组的列的数据类型

SELECT number, comment
FROM workitem
WHERE (NOT (status_lookup_id IN (400, 600))) 
    AND (modified_on < DATEADD(dd,-5, GETDATE())) AND (due_on < GETDATE())
GROUP BY cast(number as varchar(max)), cast(comment as varchar(max))

答案 2 :(得分:0)

经过一些谷歌搜索,似乎你的数据类型错了?你没有发布它们,所以我只是假设。

尝试使用此修复程序 - &gt; The text, ntext, and image data > types cannot be compared or sorted, except when using IS NULL or LIKE > operator