SQL 无法使用Union如何解决

暗香疏影 创作者

SQL 无法使用Union,显示错误如何解决呢?

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才可以。

SQL Union查找数据格式

这里我们使用以下命令来对每个表进行查询

1
2
3
4

SELECT COLUMN_NAME,DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableThatNeedToCheck';

你还可以单独只查一个Column:

1
2
3
4
5

SELECT COLUMN_NAME,DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableNAME' AND
COLUMN_NAME = 'yourColumnName'

修改数据格式

找到问题后通过以下方式即可实现使用Union

1
CAST(Table.Column AS nvarchar)
  • 标题: SQL 无法使用Union如何解决
  • 作者: 暗香疏影
  • 创建于 : 2020-10-10 00:00:00
  • 更新于 : 2020-10-10 00:00:00
  • 链接: https://blog.23ikr.com/2020/10/10/2020-10-10-SQL-Union-Not-Working/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
SQL 无法使用Union如何解决