我正在尝试编写一些代码,我可以在其中连接两个表,并根据字段是否与列名称匹配来提取列。
例如,
表A有一个名为index的列 - 其值为(IG,HY)。我正在尝试将表A连接到表B - 它具有列名(IG,HY)。我想根据A中列的值是否与B中列的名称匹配来拉入B列。
我该怎么做?
由于
答案 0 :(得分:0)
您可能必须使用如下的复杂逻辑。以下逻辑检索值TableA
并生成动态SQL以从TableB
中选择它们。
CREATE TABLE #TableA
(
ColumnName VARCHAR(10)
)
INSERT INTO #TableA VALUES ('IG'),('HY')
SELECT * FROM #TableA
CREATE TABLE #TableB
(
IG VARCHAR(10),
HY VARCHAR(10)
)
INSERT INTO #TableB VALUES( '1', 'A'), ('2', 'B')
SELECT * FROM #TableB
DECLARE @sql NVARCHAR(100)
SET @sql = 'SELECT ' + STUFF(
(
SELECT ',' + ColumnName
FROM #TableA
FOR XML PATH('')
), 1, 1, '') +
' FROM #TableB'
EXEC(@sql)
DROP TABLE #TableA
DROP TABLE #TableB