0

我有两张桌子。projects 表中的字段名称存储在 fieldname 表中

项目表

RecordID, ProjectID, Field1, Field2, Field3, Field4,...,Field20

字段名称表

字段名称 ID、项目 ID、字段编号、字段名称

是否可以从字段名称实际上是 FieldNames.FieldName 的 Projects 表中返回结果?您可以连接 'Field'+FieldNames.FieldNumber 以返回 Fieldname,然后将其用作 Projects 中 Field(x) 的别名吗?

即:而不是“Field1”,它将是 FieldNames.FieldName 其中 Projects.ProjectID=FieldNames.ProjectNames 和 FieldNumber=1

4

1 回答 1

1

您可以使用动态 SQL 或将值映射到字段的大型 case 语句来执行此操作,或者通过创建包含每个组合的视图并在 where 子句中使用适当的代码来获取正确的行来做到这一点。

但是,在我看来,你完全走错了路,在没有可怕警告的情况下帮助你走得更远是完全不负责任的。所以这里是:

您使用的数据库设计是一种非常糟糕的设计反模式,并且以一种特别臭的方式违反了最佳实践(例如“代码异味”,您有“数据库异味”)。不要将列名存储在列中。这是错误的。会疼的。它会让你的数据库变得邪恶。专业人士会偷偷地大声嘲笑它。我是认真的。

于 2012-07-20T07:41:33.827 回答