如何基于其他表中字段的串联动态设置SQL字段名?

如何基于其他表中字段的串联动态设置SQL字段名?,sql,dynamic,alias,Sql,Dynamic,Alias,我有两张桌子。项目表中的字段名存储在fieldname表中 项目表 记录ID,投影ID,字段1,字段2,字段3,字段4,…,字段20 字段名表 FieldNameID、ProjectID、FieldNumber、FieldName 是否可以从字段名实际为FieldNames.FieldName的Projects表返回结果?能否将“Field”+FieldNames.FieldNumber连接起来以返回字段名,然后将其用作项目中字段(x)的别名 i、 e.:它不是“Field1”,而是FieldN

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

项目表 记录ID,投影ID,字段1,字段2,字段3,字段4,…,字段20 字段名表 FieldNameID、ProjectID、FieldNumber、FieldName 是否可以从字段名实际为FieldNames.FieldName的Projects表返回结果?能否将“Field”+FieldNames.FieldNumber连接起来以返回字段名,然后将其用作项目中字段(x)的别名


i、 e.:它不是“Field1”,而是FieldNames.FieldName where Projects.projectd=FieldNames.ProjectNames和FieldNumber=1,您可以使用动态SQL或将值映射到字段的大型case语句来实现这一点,或者创建一个包含每个组合的视图,并在where子句中使用适当的代码来获取正确的行

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

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

RecordID, ProjectID, Field1, Field2, Field3, Field4,...,Field20 FieldNameID, ProjectID, FieldNumber, FieldName