将存储在表字段(没有引用表)中的选项值转换为相应的文本

Posted

技术标签:

【中文标题】将存储在表字段(没有引用表)中的选项值转换为相应的文本【英文标题】:convert an option value stored in a table field (without a reference table) into a corresponding text 【发布时间】:2021-12-28 12:58:16 【问题描述】:

我们有一个旧的 vb6 解决方案,它使用一个包含许多互斥选项按钮的表单来处理访问数据库

没有参考表,选项使用硬编码保存/加载,即。 optState 字段中的值可以是 0、1 或 2。

我们正在 Access 中构建一个查询以将数据导出为 XML,并寻找一种无需更新 DB 或 VB 应用程序即可将选项转换为文本字段的方法!。因此,如果 0 显示一些文本,1 显示一些其他文本......等等。

有没有办法我们可以在访问查询或访问sql中做到这一点?

没有升级 VB 或 DB 的计划,因此正在寻找解决方法。

谢谢

【问题讨论】:

为每个选择构建一个包含两个字段的表:0;Some text;1;Some other text;,然后在查询中为这些表添加连接。 【参考方案1】:

您可以在查询中使用IIf(立即如果)来执行此操作。由于每个字段有多个值,因此您需要嵌套它们。比如:

SELECT tblStatus.*, 
IIf([Status]=0,"Available",IIf([Status]=1,"Sold",IIf([Status]=2,"Withdrawn",""))) AS StatusOut
FROM tblStatus;

如果值不是 0/1/2,则返回一个空字符串。或者您可以在查询中使用Switch

SELECT tblStatus.*,
Switch([Status]=0,"Available",[Status]=1,"Sold",[Status]=2,"Withdrawn") AS StatusOut
FROM tblStatus;

问候,

【讨论】:

以上是关于将存储在表字段(没有引用表)中的选项值转换为相应的文本的主要内容,如果未能解决你的问题,请参考以下文章

oracle隐式类型转换

mysql视图里面怎么新增一个全新字段,在原来表内没有这列

无法使用休眠将引用键存储在表中

访问 2007 引用完整性而不使用表中的查找

SqlAlchemy 将新字段添加到类并在表中创建相应的列

Snowflake TIMESTAMP - 将毫秒值保留为 .000000,存储在表中