【发布时间】:2017-10-11 03:07:43
【问题描述】:
我正在使用一个遗留数据库,该数据库有一个表,其中包含其他表中的字段名称。
所以我有这个结构:
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?
【问题讨论】:
-
一个表有列,而不是字段。
-
立即执行或类似操作,具体取决于您的 RDBMS
-
@jarlh - 明白。我没有编写原始架构,也没有更改它的选项。在这种情况下,列的名称是 Field_Name 等
-
@Randy - MSSQL, sql server 2016 我相信
-
什么风格和版本的 SQL?
标签: sql sql-server sql-server-2008 tsql unpivot