SQL 两列,第一列ID列,第二列数值列,
多行第一列ID相同,
相同ID的第二列中,有些行的数值列有数据,有些行的数值列中为空,
增加第三列,怎么把相同ID第二列有值赋值给相同ID但第二列为空的SQL语句写法
我和楼上考虑的点是一样的,第二列存在多种值的时候,第三列的规则应该是怎样的?excel的vlookup是取的从上往下数第一条.
另外,sql server2008支持的开窗函数太少了,first_value肯定是不支持的,可以改成用max,窗口里面不需要排序,但这就是假定第二列存在多种值的时候,第三列取第二列中的最大值了,题主并没有说清楚这个规则究竟应该是怎样的
select t.*, max(第二列) over(partition by 第一列) 第三列 from table as t;
不考虑第二列值有多种的情况下使用开窗取分区第一行的值
select *, first_value(第二列) over(partition by 第一列 order by 第二列) from table
Excel 中 vlookup函数 可以实现,如何用sql语句实现
这不是太简单了嘛~~
select
a.第一列,
a.第二列,
b.第二列
from
table a,
(select distinct 第一列,第二列 from table where 第二列 is not null ) b
where
a.第一列 = b.第一列
;