他们有什么方法可以选择数据类型为文本的“不同”字段吗?
如果我们有一张桌子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 by 时,它给我这个错误:
The data types 'text', 'ntext' and 'image' can be compared or sorted,
except when using IS NULL or LIKE operator.
有什么解决办法吗?
谢谢
您可以使用:
SELECT DISTINCT CONVERT(varchar(max), text_column) ...
或者为了减少内存使用,如果您对前 x 字节(例如 900)感到满意:
SELECT DISTINCT LEFT(text_column, 900) ...
虽然强制转换/转换答案有效,并且首先想要对这么大的数据执行不同的操作是有问题的,但真正的解决方法是停止使用TEXT
数据类型。自 2005 年起已被弃用 http://technet.microsoft.com/en-us/library/ms187993(v=sql.90).aspx。你应该使用VARCHAR(MAX)
反而,由于各种各样的原因 http://technet.microsoft.com/en-us/library/ms178158(v=sql.90).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)