Oracle
 sql >> Database >  >> RDS >> Oracle

Come unire un gruppo di record in Oracle?

Usa:

  • MAX
  • GRUPPO PER
SQL> SELECT NAME,
  2    MAX(subject_1) subject_1,
  3    MAX(marks_1) marks_1,
  4    MAX(subject_2) subject_2,
  5    MAX(marks_2) marks_2
  6  FROM t
  7  GROUP BY name;

NAME SUBJECT_1    MARKS_1 SUBJECT_2    MARKS_2
---- --------- ---------- --------- ----------
Jon  Maths             60 Science           70
Tom  Maths             90 Science           50

SQL>

Come nota a margine, devi pensare al tuo design del tavolo . Potresti avere solo 3 colonne, name, subject, marks .

Se vuoi avere colonne separate nella stessa tabella, dovresti averli come una riga singola per ogni studente. E quando hai una nuova materia per lo studente, aggiorna la riga per quello studente, invece di aggiungere una nuova riga.