2016-10-26 39 views
0

即时比较2个表。 表1列1-5。 表2与第1-6列。将表1中的列复制到表2并复制其内容

如何与全部内容在表1

+1

您需要更具体地介绍您所指的数据库引擎。这些信息可以在标签中提供,您使用的信息不明确。附上表格图来澄清也是一个好主意。 – Jacob

+0

Im使用Ms sql 2014和类型为varchar的帽子5列。 –

+0

我会引用sql标签描述:“[..]问题应该包括代码示例,表格结构,示例数据[..]”。某人给你一个准确的答案会容易得多。 – Jacob

回答

0

这里添加的第6列(从表2)是一个例子,如何是可以实现:

DECLARE @FirstTable TABLE (
    FirstFirst VARCHAR(5), 
    FirstSecond VARCHAR(5), 
    FirstThird VARCHAR(5), 
    FirstFourth VARCHAR(5), 
    FirstFifth VARCHAR(5)) 
INSERT INTO @FirstTable 
VALUES 
    ('111', '121', '131', '141', '151'), 
    ('112', '122', '132', '142', '152'), 
    ('113', '123', '133', '143', '153') 

DECLARE @SecondTable TABLE (
    SecondFirst VARCHAR(5), 
    SecondSecond VARCHAR(5), 
    SecondThird VARCHAR(5), 
    SecondFourth VARCHAR(5), 
    SecondFifth VARCHAR(5), 
    SecondSixth VARCHAR(5)) 
INSERT INTO @SecondTable 
VALUES 
    ('111', '121', '131', '141', '151', '161'), 
    ('112', '122', '132', '142', '152', '162'), 
    ('113', '123', '133', '143', '153', '163') 

--As a join 
SELECT ft.*, st.SecondSixth FROM @FirstTable AS ft 
LEFT JOIN @SecondTable AS st ON 
    ft.FirstFirst = st.SecondFirst AND 
    ft.FirstSecond = st.SecondSecond AND 
    ft.FirstThird = st.SecondThird AND 
    ft.FirstFourth = st.SecondFourth AND 
    ft.FirstFifth = st.SecondFifth 

--As outer apply 
SELECT ft.*, oa_secondTable.SecondSixth FROM @FirstTable AS ft 
OUTER APPLY (
    SELECT TOP 1 st.SecondSixth FROM @SecondTable AS st 
    WHERE 
     ft.FirstFirst = st.SecondFirst AND 
     ft.FirstSecond = st.SecondSecond AND 
     ft.FirstThird = st.SecondThird AND 
     ft.FirstFourth = st.SecondFourth AND 
     ft.FirstFifth = st.SecondFifth 
) AS oa_secondTable 

简短说明 - 两个表 - 第一个示例与加入的比较 - 第二个示例与外部应用

相关问题