MS-Access:文本表达式附加空字符

时间:2017-01-02 12:43:46

标签: ms-access ms-access-2003

我在ms-access中有一个简单的查询,它将两个文本字段合并为一个:

SELECT AllNames.Name, AllNames.Authority, [Name] & " " & [Authority] AS Expr1
FROM AllNames;

查询结果并不完全符合我的预期,因为表达式列会在结果字符串中追加一个额外的字符\ 0:

Name                        Authority           Expr1
Acrophorus dissectus        Ching & S. H. Wu    Acrophorus dissectus Ching & S. H. Wu\0
Acrophorus emeiensis        Ching               Acrophorus emeiensis Ching\0
Acrophorus exstipellatus    Ching & S. H. Wu    Acrophorus exstipellatus Ching & S. H. Wu\0

有趣的是AllNames是一个链表。如果我在拥有AllTables的数据库中运行相同的查询,则不会附加空字符。

在表达式周围添加Trim()或用&doesn帮助替换&符号。

已扫描AllNames中的所有文本字段以查找空字符,并在必要时进行清除。每当我使用它时,我都可以对查询结果做同样的事情,但我不是因为这是我需要速度的地方。

是否有任何解决此问题的方法,或者是向AllNames添加冗余字段的唯一解决方案(并且存在与数据完整性相关的风险)?

MSAccess 2003 Windows Server 2003/64

修改 场长会发生什么变化?如果我改为查询

select [Name], Len([Name]) As N_Len, 
[Authority], Len([Authority]) As A_Len, 
[Name] & " " & [Authority] As Expr1, Len([Name] & " " & [Authority]) As E1_Len 
From AllNames

然后结果是

Name                     N_Len  Authority        A_Len  Expr1                                   E1_Len
(no name)                    9                          (no name)                                   10
Pteridophyta                12  Schimper             8  Pteridophyta Schimper                       21
Acrophorus diacalpioides    24  Ching & S. H. Wu    17  Acrophorus diacalpioides Ching & S. H. Wu   42
Acrophorus dissectus        20  Ching & S. H. Wu    17  Acrophorus dissectus Ching & S. H. Wu       38
Acrophorus emeiensis        20  Ching                6  Acrophorus emeiensis Ching                  27

那么空字符真的存在吗?不是因为我们相信字段长度(len(name)+ len(author)+ 1之间的空间)。但是,我在pyodbc中使用Python中的查询(不是那种不涉及链接表的其他查询,或者使用自己数据库中的相同表)。当光标位于文本后面时,它也显示在Access的GUI中:

screendum from access

0 个答案:

没有答案