Sql 基于另一个表中的列名从表中选择列

Sql 基于另一个表中的列名从表中选择列,sql,sql-server-2014,Sql,Sql Server 2014,我想从下表中为Jasper报告选择数据 AA_列_名称 AA_付款详情 DDL+DML 我只想从AA_PAYMENT_DETAILS中选择活动列。可以从AA_column_names表中获取活动列名 我在谷歌上搜索了我的问题,找到了以下解决方案 因为我想在Jasper报告中使用该查询,所以上述解决方案不起作用。有人知道解决方案吗?您必须使用动态SQL来做到这一点-这里有一个相当简单的方法: DECLARE @SQL nvarchar(4000) = ''; SELECT @SQL = @S

我想从下表中为Jasper报告选择数据

AA_列_名称

AA_付款详情

DDL+DML

我只想从AA_PAYMENT_DETAILS中选择活动列。可以从AA_column_names表中获取活动列名

我在谷歌上搜索了我的问题,找到了以下解决方案


因为我想在Jasper报告中使用该查询,所以上述解决方案不起作用。有人知道解决方案吗?

您必须使用动态SQL来做到这一点-这里有一个相当简单的方法:

DECLARE @SQL nvarchar(4000) = '';

SELECT @SQL = @SQL +', '+ name 
FROM dbo.AA_COLUMN_NAMES
WHERE active = 1

SET @SQL = 'SELECT id, username' + @SQL + ' FROM dbo.AA_PAYMENT_DETAILS'

EXEC(@SQL)

样本数据最好作为+。请将您的问题包括在内,您当前的尝试和您想要的结果。想了解更多细节,有人能解释为什么在没有回答或解释正当理由的情况下否决了我的问题吗?我不知道是谁否决了你,也不知道为什么。既然你的问题包含了正确的样本数据,我已经投了赞成票。“我不知道我今天是否有时间发布一个答案,不过。”佐哈珀莱德你能在有时间的时候发布一个答案吗
DECLARE @SQL nvarchar(4000) = '';

SELECT @SQL = @SQL +', '+ name 
FROM dbo.AA_COLUMN_NAMES
WHERE active = 1

SET @SQL = 'SELECT id, username' + @SQL + ' FROM dbo.AA_PAYMENT_DETAILS'

EXEC(@SQL)