我正在处理一个遗留数据库,该数据库有一个表格,其中包含来自其他表的字段名称。使用列值作为子查询中的列名称
所以我有这样的结构:
Field_ID | Field_Name
*********************
1 | Col1
2 | Col2
3 | Col3
4 | Col4
,我需要拉动该领域元数据的列表与字段的给定用户的值一起。所以,我需要:
Field_ID | Field_Name | Value
1 | Col1 | ValueOfCol1onADiffTable
2 | Col2 | ValueOfCol2onADiffTable
3 | Col3 | ValueOfCol3onADiffTable
4 | Col4 | ValueOfCol4onADiffTable
我想用FIELD_NAME在子查询中拉该值,但无法弄清楚如何获得SQL评估Field_Name
作为子查询的列。
因此,像这样:
select
Field_ID
,Field_Name
,(SELECT f.Field_Name from tblUsers u
where u.User_ID = @userId) as value
from
dbo.tblFields f
但只返回Field_Name
在值列,而不是它的价值。
我是否需要将子查询放入单独的函数中并对其进行评估?或者某种动态SQL?
桌子有_columns_,不_fields_。 – jarlh
执行立即或类似取决于您的RDBMS – Randy
@jarlh - 理解。我没有写出原始模式,也没有改变它的选项。在这种情况下列的名称是Field_Name等 –