交叉投射错误

时间:2015-02-25 07:13:03

标签: sql sql-server

我已经尝试过以下但是交叉不能处理以下错误 数据类型文本不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不具有可比性。

SELECT * FROM TableA
INTERSECT
SELECT * FROM TableB

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您阅读MSDN他们提到了这一点,

  

查询规范或表达式不能返回xml,text,ntext,   image或非二进制CLR用户定义类型列,因为这些数据   类型无法比较。

使用cast(textcolumnname as nvarchar(2000))之类的textcolumnname代替text字段名称。

如果您想使用INTERSECT将数据类型转换为varchar,我认为还有其他方法可以执行此操作。
另一种方法是使用INNER JOINDISTINCT,它会为您提供与INTERSECT相同的结果。 Here is the detail description how to achive intersect with Inner join