Advertisement
Guest User

Untitled

a guest
Apr 18th, 2014
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. CREATE TABLE TABLE1(FOREIGN_ID VARCHAR(5), VV VARCHAR(10));
  2.  
  3. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I1', 'XXXXX');
  4. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I2', 'YYYYY');
  5. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I2', 'ZZZZZ');
  6. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I2', 'SSSSS');
  7. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I2', 'SSSSS');
  8. INSERT INTO TABLE1(FOREIGN_ID, VV) VALUES ('I1', 'TTTTT');
  9.  
  10. FOREIGN_ID VV
  11. ----- ---------
  12. I1 XXXXX
  13. I2 YYYYY
  14. I2 ZZZZZ
  15. I2 SSSSS
  16. I2 SSSSS
  17. I1 TTTTT
  18.  
  19. ALTER TABLE TABLE1 ADD SEQ_NUMBER NUMBER(5) DEFAULT 0 NOT NULL;
  20.  
  21. ALTER TABLE TABLE1 ADD CONSTRAINT TABLE1_PK PRIMARY KEY (FOREIGN_ID, SEQ_NUMBER);
  22.  
  23. FOREIGN_ID VV SEQ_NUMBER
  24. ----- --------- -----
  25. I1 XXXXX 0
  26. I2 YYYYY 0
  27. I2 ZZZZZ 1
  28. I2 SSSSS 2
  29. I2 SSSSS 3
  30. I1 TTTTT 1
  31.  
  32. select t.*,
  33. row_number() over (partition by t.foreign_id order by t.vv) - 1 seq_number
  34. from TABLE1 t;
  35.  
  36. FOREIGN_ID VV SEQ
  37. I1 TTTTT 0
  38. I1 XXXXX 1
  39. I2 SSSSS 0
  40. I2 SSSSS 1
  41. I2 YYYYY 2
  42. I2 ZZZZZ 3
  43.  
  44. update TABLE1 t
  45. set t.seq_number = row_number() over (partition by t.foreign_id order by t.vv)-1
  46. ;
  47.  
  48. create table TABLE2 as
  49. select t.foreign_id,
  50. t.vv,
  51. row_number() over (partition by t.foreign_id order by t.vv) - 1 seq_number
  52. from TABLE1 t;
  53.  
  54. ALTER TABLE TABLE2 ADD CONSTRAINT TABLE2_PK PRIMARY KEY (FOREIGN_ID, SEQ_NUMBER);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement