如何编写将文本转换为数字的代码?
How to write a code to convert text into a number?
我正在处理的数据库在一个 table 中有一个文本字段,而另一个 table 中有一个数字格式的字段。我根本无法更改数据库中的字段格式。因此,在链接(或加入)table 以提取数据之前,我需要知道如何将字段从文本转换为数字。
SELECT DISTINCT tblCoachingDB.ID, tblCoachingDB.SourceId, tblCoachingDBSource.ID
FROM tblCoachingDB, tblCoachingDBSource
WHERE (((tblCoachingDB.SourceId)="12"));
tblCoachingDB.SourceID 是文本,而 tblCoachingDBSource.ID 是数字
假设 tblCoachingDB.SourceID 中的所有值都是数字,您可以创建一个查询,从 tblCoachingDB 中选择除 SourceID 之外的所有字段。然后在查询SourceID中添加一个新字段:clng(tblCoachingDB.SourceID)
然后您可以在需要进行连接的任何地方使用查询而不是 tblCoachingDB。第二种选择是为 tblCoachingDBSource 创建查询并使用 SourceID:cstr(tblCoaching.SourceID)
第三种选择是:
SELECT * FROM tblCoachingDB, tblCoachingDBSource
WHERE (clng(tblCoachingDB.SourceId)=tblCoachingDBSource.ID
AND ((tblCoachingDB.SourceId)="12"));
您可以使用 CStr()
将数字转换为文本,然后 JOIN
将其转换为另一个文本字段。
SELECT DISTINCT
tblCoachingDB.ID,
tblCoachingDB.SourceId,
tblCoachingDBSource.ID
FROM
tblCoachingDB INNER JOIN tblCoachingDBSource
ON tblCoachingDB.SourceId = CStr(tblCoachingDBSource.ID)
WHERE tblCoachingDB.SourceId='12';
实际上,在您确认 JOIN
正常工作之前,我会省略 WHERE
子句。
您最初要求 JOIN
将文本字段转换为数字。我首先建议使用文本,因为我记得 Access 不太可能反对。但我对此的记忆是不稳定的,如果你想要 JOIN
两边的数字,看看哪一个(如果有的话)最适合你:
ON Int(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
ON CLng(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
ON Val(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
注意我提出这个建议只是因为你告诉我们你不被允许改变你的 tblCoachingDB table 的设计来制作 SourceId 数字而不是文本数据类型。由于您无法进行该更改,因此您将不得不忍受转换 JOIN
字段的数据类型对性能的 运行 时间影响。那是不是好事,但我不知道会有多坏。祝你好运。
我正在处理的数据库在一个 table 中有一个文本字段,而另一个 table 中有一个数字格式的字段。我根本无法更改数据库中的字段格式。因此,在链接(或加入)table 以提取数据之前,我需要知道如何将字段从文本转换为数字。
SELECT DISTINCT tblCoachingDB.ID, tblCoachingDB.SourceId, tblCoachingDBSource.ID
FROM tblCoachingDB, tblCoachingDBSource
WHERE (((tblCoachingDB.SourceId)="12"));
tblCoachingDB.SourceID 是文本,而 tblCoachingDBSource.ID 是数字
假设 tblCoachingDB.SourceID 中的所有值都是数字,您可以创建一个查询,从 tblCoachingDB 中选择除 SourceID 之外的所有字段。然后在查询SourceID中添加一个新字段:clng(tblCoachingDB.SourceID)
然后您可以在需要进行连接的任何地方使用查询而不是 tblCoachingDB。第二种选择是为 tblCoachingDBSource 创建查询并使用 SourceID:cstr(tblCoaching.SourceID)
第三种选择是:
SELECT * FROM tblCoachingDB, tblCoachingDBSource
WHERE (clng(tblCoachingDB.SourceId)=tblCoachingDBSource.ID
AND ((tblCoachingDB.SourceId)="12"));
您可以使用 CStr()
将数字转换为文本,然后 JOIN
将其转换为另一个文本字段。
SELECT DISTINCT
tblCoachingDB.ID,
tblCoachingDB.SourceId,
tblCoachingDBSource.ID
FROM
tblCoachingDB INNER JOIN tblCoachingDBSource
ON tblCoachingDB.SourceId = CStr(tblCoachingDBSource.ID)
WHERE tblCoachingDB.SourceId='12';
实际上,在您确认 JOIN
正常工作之前,我会省略 WHERE
子句。
您最初要求 JOIN
将文本字段转换为数字。我首先建议使用文本,因为我记得 Access 不太可能反对。但我对此的记忆是不稳定的,如果你想要 JOIN
两边的数字,看看哪一个(如果有的话)最适合你:
ON Int(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
ON CLng(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
ON Val(tblCoachingDB.SourceId) = tblCoachingDBSource.ID
注意我提出这个建议只是因为你告诉我们你不被允许改变你的 tblCoachingDB table 的设计来制作 SourceId 数字而不是文本数据类型。由于您无法进行该更改,因此您将不得不忍受转换 JOIN
字段的数据类型对性能的 运行 时间影响。那是不是好事,但我不知道会有多坏。祝你好运。