UNION查询创建奇怪的字符

时间:2015-04-03 13:34:33

标签: sql ms-access

在我的Access应用程序中,我使用UNION连接两个结果集。这工作多年了,但现在它停止了工作,因为在工会之后,一个文本字段只显示了一些粗糙的汉字。

这是设置:

1. select id,fieldA,1 as fieldB from tableA where cond=1
2. select id,"" as fieldA,2 as fieldB from tableA where cond=0

这些查询分别显示正确的结果。但在我加入

之后
select * from subquery1 UNION select * from subquery2

来自fieldA的数据只是一些中文字符,如㼄W 。我不知道它来自何处。

经过一番尝试后,我发现以下查询显示了正确的结果:

select * from subquery1 where id=1 UNION select * from subquery2 where id=1

一个好的副作用是性能提升,尽管我每次都要更改querydef。 但是为什么会这样,旧版本停止工作?

2 个答案:

答案 0 :(得分:1)

不要显示空字符串"",而是尝试添加Null

SELECT id, fieldA, 1 as fieldB FROM tableA WHERE cond=1
UNION SELECT id,Null as fieldA,2 as fieldB FROM tableA where cond=0;

答案 1 :(得分:0)

有关信息,我仅通过使用UNION ALL就解决了类似的问题,同时具有改善性能的好处。