我有一个表的SQL Server上,结构如下:合并项,交替空列
ID int identity not null,
Name_English nvarchar(max),
Name_Spanish nvarchar(max),
由于迁移,上表中的当前数据看起来是这样的:
ID Name_English Name_Spanish
1 'Architecture' null
2 null 'Arquitectura'
3 'Music' null
4 'Sculpture' null
5 null 'Música'
6 null 'Escultura'
我想将它们合并,使他们看起来是这样的:
ID Name_English Name_Spanish
1 'Architecture' 'Arquitectura'
3 'Music' 'Música'
4 'Sculpture' 'Escultura'
确切的ID是不重要的,但它是用于秩序(这就是为什么建筑不应该与Música合并)。另外,它们不能保证一个接一个地交替。原始数据已分块更新。
我想使用MERGE
和ROW_NUMBER()
排序,但我不知道如何使用它们来创建查询。
这似乎是工作,但输入的数据的方式,它不能保证为英文条目是奇数和西班牙人是偶数。我会更新这个问题。 –
该死的,根据你的初始样本数据,我以为我们是保证每隔一个。通过修改后的例子,我们是否可以保证包含'Name_English'的非空值的行的下一行包含'Name_English'的空值将包含相应的'Name_Spanish'?即使这样,你也必须回溯到捕捉西班牙语单行时跳过的英文单词,然后避免重复使用之前通过的(然后在前面回溯)西班牙语定义(以避免“音乐”和“雕塑”在修改后的样本数据中都会获得'Música')。 – LDMJoe
是的,英文中的空值保证具有西班牙语的价值,反之亦然。 –