如何将字符串映射到 MS Access 中的 table 列?
How to map a string to a table column in MS Access?
我需要一个 SQL 查询来将表 A 中列的字符串内容映射到表 B 中的一组列。它看起来像这样:
TableA
| ID | Status |
---------------
| 0 | "full" |
| 1 | "part" |
| | |
TableB
| ID | full | part |expire|
--------------------------
| 0 | true | false| false|
| 1 | false| true | false|
| | | | |
我正在使用 MS Access,目前我只有这些:
SELECT * FROM TableA INNER JOIN TableB ON TableA.ID = TableB.ID
根据ID正确匹配了两个表。但是,我不知道从这里去哪里。假设将以下内容添加到表 A:
{ID:2, Status:"Expire"}
我如何将它从 TableA 映射到 TableB?理想情况下,这将在 1 个查询中完成。
非常感谢! :)
对每一列使用 IIf()
函数。
SELECT ID,
IIf([Status]='full', True, False) AS [full],
IIf([Status]='part', True, False) AS [part],
IIf([Status]='expire', True, False) AS [expire]
FROM Table1
你的问题不够明确。
如果要从 TableA 重新创建 TableB,请在查询中使用 IIf ( expr , truepart , falsepart ) 函数。
下面的示例(添加的状态字段 - 您可以将其排除):
Select ID,Status, IIf([Status]="full", true, false) as full, IIf([Status]="part", true, false) as part,IIf([Status]="expire", true, false) as expire from TableA
如果您打算连接两个表,请使用 LEFT OUTER 连接,这将包括 TableA 中的所有行。在这种情况下,第 3 行的布尔标志将为空值,因为没有匹配的行。
SELECT TableA.ID,Status,full,part,expire FROM TableA LEFT JOIN TableB ON TableA.ID = TableB.ID
此致,
比克斯
我需要一个 SQL 查询来将表 A 中列的字符串内容映射到表 B 中的一组列。它看起来像这样:
TableA
| ID | Status |
---------------
| 0 | "full" |
| 1 | "part" |
| | |
TableB
| ID | full | part |expire|
--------------------------
| 0 | true | false| false|
| 1 | false| true | false|
| | | | |
我正在使用 MS Access,目前我只有这些:
SELECT * FROM TableA INNER JOIN TableB ON TableA.ID = TableB.ID
根据ID正确匹配了两个表。但是,我不知道从这里去哪里。假设将以下内容添加到表 A:
{ID:2, Status:"Expire"}
我如何将它从 TableA 映射到 TableB?理想情况下,这将在 1 个查询中完成。
非常感谢! :)
对每一列使用 IIf()
函数。
SELECT ID,
IIf([Status]='full', True, False) AS [full],
IIf([Status]='part', True, False) AS [part],
IIf([Status]='expire', True, False) AS [expire]
FROM Table1
你的问题不够明确。
如果要从 TableA 重新创建 TableB,请在查询中使用 IIf ( expr , truepart , falsepart ) 函数。 下面的示例(添加的状态字段 - 您可以将其排除):
Select ID,Status, IIf([Status]="full", true, false) as full, IIf([Status]="part", true, false) as part,IIf([Status]="expire", true, false) as expire from TableA
如果您打算连接两个表,请使用 LEFT OUTER 连接,这将包括 TableA 中的所有行。在这种情况下,第 3 行的布尔标志将为空值,因为没有匹配的行。
SELECT TableA.ID,Status,full,part,expire FROM TableA LEFT JOIN TableB ON TableA.ID = TableB.ID
此致, 比克斯