Announcement

Collapse
No announcement yet.

Hilfe bei sql

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei sql

    Hallo,

    bin ziemlicher Neuling auf dem Gebiet sql
    Ich bin Azubi zum Fachinformatiker AE und habe von meine etreuer folgende Aufgabe bekommen:
    Ein Script schreiben, um herauszubekommen, welche Nummern zwischen 1 und 999.999 nicht belegt sind.
    Es handelt sich um eine Tabelle, wo nur die Nummern aufgeführt sind, die belegt sind.
    Alle nicht belegten sind nicht aufgeführt.
    Ich habe jedoch nur Lese-Berechtigungen auf die Datenbank, kann also keine Tabelle oder Spalte mit den Zahlen von 1 - 999.999 erstellen.

    Kann mir da jemand helfen?

    Vielen Dank

  • #2
    Auch hallo

    Allgemein beschrieben liest man alle Zahlen der Zielspalte mit SELECT DISTINCT aus und schreibt diese der Grösse nach sortiert in ein Array. In einer for-Schleife von 1 bis 999.999 wird dann auch (Un)Gleichheit mit dem jeweiligen Schleifenwert verglichen. Als Endergebnis werden die nicht getroffenen Werte ausgegeben.
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Es geht aber auch per SQL:

      SELECT zh.id, tb.id
      FROM ( SELECT ROWNUM id FROM dual CONNECT BY LEVEL <= 999999 ) zh
      , ( SELECT id FROM deineTabbelle ) tb
      WHERE zh.id = tb.id (+)
      order by zh.id
      /

      Da wo du NULL in der zweiten Spalte bekommst ist die Nummer in deiner Tabelle nicht vorhandenn.

      @Markus
      das ist so nicht richtig. da nach der ersten Lücke eine Verschiebung statt findet.

      Comment

      Working...
      X