现在源表(T1)的数据和结构如下所示:
NAME RECORD_NUMBER APPROVERS AREA
MS COORDINATOR 1123 1 EMEA_ARMSTROA c
MS COORDINATOR 1123 3 AMERICAS_SIMSS c
MS COORDINATOR 1123 4 ASIAPACIFIC_KUMSANGA c
MS COORDINATOR 1123 5 ASIAPACIFIC_MSAGE c
MS COORDINATOR 1123 7 ASIAPACIFIC_MSAGE c
然后我想将上表中的数据复制到新表(T2)并删除重复的行并删除record_number空白并按字母顺序排序批准者并重置record_number的值,因此应该查看目标表中的数据像这样:
NAME RECORD_NUMBER APPROVERS AREA
MS COORDINATOR 1123 1 AMERICAS_SIMSS c
MS COORDINATOR 1123 2 ASIAPACIFIC_KUMSANGA c
MS COORDINATOR 1123 3 ASIAPACIFIC_MSAGE c
MS COORDINATOR 1123 4 EMEA_ARMSTROA c
那么,任何人都可以给我一个单行的sql解决方案吗? T2表的主键是(name,record_number,area)
答案 0 :(得分:2)
使用ROWNUM生成record_number
列。
试试这个:
INSERT INTO t2
SELECT name,
ROWNUM AS record_number,
approvers,
area
FROM ( SELECT DISTINCT name, approvers, area
FROM t1
ORDER BY approvers ) x