给定2个或更多行选择合并,其中一行被识别为模板行.其他行应将其数据合并到模板具有的任何空值列中.
示例数据:
Id Name Address City State Active Email Date
1 Acme1 NULL NULL NULL NULL blah@yada.com 3/1/2011
2 Acme1 1234 Abc Rd Springfield OR 0 blah@gmail.com 1/12/2012
3 Acme2 NULL NULL NULL 1 blah@yahoo.com 4/19/2012
Run Code Online (Sandbox Code Playgroud)
假设用户选择了Id 1作为模板行的行,而Ids 2和3的行将合并到行1中然后删除.行Id 1中的任何空值列应填充(如果存在)最近的(请参见日期列)非空值,并且行Id 1中已存在的非空值将保持原样.对上述数据的查询结果应该是这样的:
Id Name Address City State Active Email Date
1 Acme1 1234 Abc Road Springfield OR 1 blah@yada.com 3/1/2011
Run Code Online (Sandbox Code Playgroud)
请注意,Active值为1,而不是0,因为行Id 3具有最新日期.
PS此外,有没有任何方法可以做到这一点,而无需事先明确定义/知道所有列名称是什么?我正在使用的实际表格有很多列,新的列一直在添加.有没有办法查找表中的所有列名,然后使用该子查询或temptable来完成这项工作?