在我的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。 但是为什么会这样,旧版本停止工作?
答案 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
就解决了类似的问题,同时具有改善性能的好处。