【发布时间】:2013-05-17 21:05:48
【问题描述】:
我使用左外连接在 SQL 中连接了两个表(见下文)。
是否可以用其他数据填充空单元格?
(来自小提琴)
CREATE TABLE Data1
(cost_type nvarchar(10), contract nvarchar(10))
;
INSERT INTO Data1
(cost_type, contract)
VALUES
('LABR', 'contract1'),
('EQP', ''),
('RST', 'contract1')
;
CREATE TABLE data2
(cost_type nvarchar(10), contract nvarchar(10), Name nvarchar(max))
;
INSERT INTO data2
(cost_type,contract,Name)
VALUES
('LABR','contract1','John'),
('MAT','contract1','John'),
('EQP','','')
;
当前正在运行的查询:
select * from data1 dt1
left outer join data2 dt2 on dt1.cost_type=dt2.cost_type
我需要的结果如下:
COST_TYPE CONTRACT NAME
LABR, contract1, John
EQP, contract1, John
RST, contract1, John
此结果基于查找 CONTRACT 列的最常用值并将所有空值替换为该值。我需要为 NAME 列做同样的事情。
【问题讨论】:
-
有哪些数据?您的预期结果是什么?
-
您需要再次加入表格,并按上一行加入
-
你们不应该对新用户提出的任何问题投反对票。这样一来,您就会让新用户望而却步。
-
最初我也想过投反对票,但在看到他的小提琴后,我印象深刻,他的问题是可以理解的。
-
@rockwell 由于您没有按任何顺序排序,因此行的顺序是随机的。如果 EQP 恰好位居榜首,你想要什么价值?从另一个随机行?
标签: sql sql-server join