SQL 无法使用Union,显示错误如何解决呢?
SQL 中可以使用UNION这个命令,来将两个表合并且自动删除重复的数据。 Union All则是只是合并,不删除重复数据。
错误提示:The data type ntext cannot be used as an operand to the UNION, INTERSECT or EXCEPT operators because it is not comparable.
这是由于数据中确实存在ntext这个数据格式导致的,由于ntext已经被nvarchar取代,所以需要找到哪个数据是ntext。 尝试各种办法发现,只有找到这个数据并转换为nvarchar才可以。
这里我们使用以下命令来对每个表进行查询
SELECT COLUMN_NAME,DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableThatNeedToCheck';
你还可以单独只查一个Column:
SELECT COLUMN_NAME,DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableNAME' AND
COLUMN_NAME = 'yourColumnName'
找到问题后通过以下方式即可实现使用Union
CAST(Table.Column AS nvarchar)