我有以下情况:
表1
col1 col2 col3
1 40 40(tblABC的标识列值)
2 41 41(tblDEF的标识列值)
表2
col1 col2 col3
40 tblABC tblABCPrimaryKey
41 tblDEF tblDEFPrimaryKey
==========不同的表==============
tblABC
tblPrimaryKeyIdcol2
100 VALUE
tblDEF
tblPrimaryKeyIdcol2
101 VALUE
我需要在join的下面获取列
选择Table-1.col1,
表格2.col2,
[tblABC.col2或tblDEF.col2等,依表而定]
从表1
内部联接(联接在这里)
我想得到
表1中的col1,
表2中的col2,其中表1的col2与表2的col1匹配,
col2来自(表2的COL2中的表,其中表2的col3与col-2 [不同表]中的那些表中的列匹配)
请帮助。
答案 0 :(得分:0)
DECLARE @sql NVARCHAR(MAX) = '
SELECT Table1.col1
, Table2.col2,
, COALESCE(';
SELECT
@sql = @sql + #Table2.col2 + '.col2, '
FROM #Table2;
SET @sql = @sql + ' NULL)
INNER JOIN Table2
ON Table1.col2 = Table2.col1';
SELECT
@sql = @sql + '
LEFT JOIN ' + col2 + '
ON Table2.col2 = ''' + col2 + '''
AND Table1.col3 = ' + col2 + '.col1'
FROM #Table2
EXEC sys.sp_executesql @sql;