一个表的行将作为另一个表中的列传输

时间:2017-03-21 12:00:59

标签: sql-server

我不确定是否已经提出过这个问题。我搜索但是得到它。

我有一个要求,我必须根据条件选择列的列表。我有两个表。一个表的列中包含其中一列wrt唯一ID的值。此值列表将在第二个表中为COLUMNS。即表1中,tblsgnls COLUMN clncgnls将具有信号值。在表2中,clncgnls本身的值将是COLUMNS,并且这些值将包含一些值。现在我的要求是我需要一个select查询,它只显示我需要的那些列及其值(我将提到的是where子句)。

表1:

enter image description here

表2:

enter image description here

这可能吗?

另外,我需要根据我的要求在第二个表中选择所需的列是S1,S2。

1 个答案:

答案 0 :(得分:1)

所以,这应该对你有用,你在评论中提供了新的解释! :)

declare @cols nvarchar(100) = '', @sqlQuery nvarchar(max)

select @cols = @cols + QUOTENAME(t.clncglns) + ',' from ( select distinct clncglns from table1 where sgnlid = 1) t

set @sqlQuery = 'select ' + left(@cols, LEN(@cols)-1) + ' from table2'
execute sp_executesql @sqlQuery

@cols变量保存了您需要的列的名称,逗号分隔。 这个(左(@cols,LEN(@cols)-1))是为了删除字符串上的最后一个逗号。