他们以任何方式选择一个字段为Distinct,其数据类型为Text。
如果我们有一个表T1
,其中一个名为Subjects
的字段的数据类型为Text
。
Subjects
--------
Room
--------
Room
--------
window
--------
Door
--------
Door
--------
如果我尝试此查询
Select Distinct (Subjects)
from T1
它给了我这个错误:
The text data type can not be selected as DISTINCT because it is not comparable
当我使用Group时,给我这个错误:
The data types 'text', 'ntext' and 'image' can be compared or sorted,
except when using IS NULL or LIKE operator.
有什么解决方案吗? 感谢
答案 0 :(得分:10)
您可以尝试首先将字段转换为varchar:
SELECT DISTINCT CONVERT(VARCHAR(MAX), Subjects) FROM T1
答案 1 :(得分:8)
虽然演员/转换答案有效,但真正的解决方法是停止使用TEXT
数据类型。 It has been deprecated for over 8 years。您应该使用VARCHAR(MAX)
代替for a whole variety of reasons。
答案 2 :(得分:2)
使用CAST
select distinct cast(Subjects as varchar(max)) from T1