Sql 在第一个表结束时连接两个表
我有两张像这样的桌子Sql 在第一个表结束时连接两个表,sql,sql-server,Sql,Sql Server,我有两张像这样的桌子 tab 1 Date Product 29-05-2014 apple 30-05-2014 banana 31-05-2014 pink tab 2 Date Product 29-05-2014 red 30-05-2014 blue 31-05-2014 orange 01-06-2014 whit 02-06-2014 black required table Date Product 29-05-20
tab 1
Date Product
29-05-2014 apple
30-05-2014 banana
31-05-2014 pink
tab 2
Date Product
29-05-2014 red
30-05-2014 blue
31-05-2014 orange
01-06-2014 whit
02-06-2014 black
required table
Date Product
29-05-2014 apple
30-05-2014 banana
31-05-2014 pink
01-06-2014 whit
02-06-2014 black
当第一个表结束时,如何连接两个表?尝试使用
COALESCE
:
SELECT T2.Date,COALESCE(T1.Product,T2.Product) as Product
FROM Tab2 T2 LEFT JOIN
Tab1 T1 ON T1.Date=T2.Date
COALESCE
如果T1.Product为空,则返回T2.Product。
结果:
结果是。尝试使用
合并:
SELECT T2.Date,COALESCE(T1.Product,T2.Product) as Product
FROM Tab2 T2 LEFT JOIN
Tab1 T1 ON T1.Date=T2.Date
COALESCE
如果T1.Product为空,则返回T2.Product。
结果:
结果是。尝试使用合并:
SELECT T2.Date,COALESCE(T1.Product,T2.Product) as Product
FROM Tab2 T2 LEFT JOIN
Tab1 T1 ON T1.Date=T2.Date
COALESCE
如果T1.Product为空,则返回T2.Product。
结果:
结果是。尝试使用合并:
SELECT T2.Date,COALESCE(T1.Product,T2.Product) as Product
FROM Tab2 T2 LEFT JOIN
Tab1 T1 ON T1.Date=T2.Date
COALESCE
如果T1.Product为空,则返回T2.Product。
结果:
结果是。所以您想忽略红色、蓝色和橙色
?从tab1
中包括日期大于max(date)
的任何内容?第二个表从第一个表结束的位置连接到第一个表。仅从表1中的最大日期开始,是否要忽略<代码>红色、蓝色<代码>和<代码>橙色<代码>?从tab1
中包括日期大于max(date)
的任何内容?第二个表从第一个表结束的位置连接到第一个表。仅从表1中的最大日期开始,是否要忽略<代码>红色、蓝色<代码>和<代码>橙色<代码>?从tab1
中包括日期大于max(date)
的任何内容?第二个表从第一个表结束的位置连接到第一个表。仅从表1中的最大日期开始,是否要忽略<代码>红色、蓝色<代码>和<代码>橙色<代码>?从tab1
中包括日期大于max(date)
的任何内容?第二个表从第一个表结束的位置连接到第一个表。仅从表1中的max date开始