Wie um zu überprüfen, Oracle-Spalte Werte sind alle die gleichen, für eine bestimmte ID?

Ich versuche herauszufinden, der beste Weg, um zu bestimmen, die für eine spezifische ID innerhalb einer Oracle-11g-Tabelle hat 5 Spalten und sagen wir 100 Zeilen gegen diese ID, wenn alle Werte in der Spalte sind die gleichen für diese fünf Spalten.

Beispiel:

Tabelle-Name: TABLE_DATA

Spalten:

TD_ID   ID      COL1    COL2    COL3    COL4    COL5
-----------------------------------------------------------------------
1       1       1       0       3       2       0
2       1       1       0       3       2       0
3       1       1       0       3       2       0
4       1       1       0       3       2       0
5       1       1       0       3       2       0
6       1       1       0       3       2       0

Also basierend auf dem obigen Beispiel, die nur mit 6 Zeilen für jetzt mit der ID:1, ich möchte, um zu überprüfen, dass für alle COL1, COL2, COL3, COL4 und COL5 Werte where ID = 1, sagen Sie mir, wenn alle Werte gleich sind von der ersten Zeile bis zum letzten – wenn ja, dann return 'Y' else return 'N'.

Angesichts der oben genannten Beispiel wäre das Ergebnis 'Y', aber zum Beispiel, wenn TD_ID = 5 und COL3 = 4, dann das Ergebnis wäre, 'N', da alle Werte in der Spalte sind nicht die gleichen, d.h.:

TD_ID   ID      COL1    COL2    COL3    COL4    COL5
-----------------------------------------------------------------------
1       1       1       0       3       2       0
2       1       1       0       3       2       0
3       1       1       0       3       2       0
4       1       1       0       3       2       0
5       1       1       0       4       2       0
6       1       1       0       3       2       0

Ich bin nur nicht sicher, was die Schnellste Ansatz, um dies zu bestimmen ist, wie die Tabelle ich bin auf der Suche können mehr als 2000 Zeilen in der Tabelle für eine bestimmte ID.

  • Dass TD_ID ist der eigentliche Schmerz. Ohne Sie könnte man einige einfache Mengenoperationen und sparen Sie sich den Schmerz der Liste aus jeder Spalte. Mit es, ich bin mir ziemlich sicher, dass Sie die Liste alle Spalten explizit.
  • könnte Sie pls erarbeiten mit Beispielen re:einfache set-Operationen, wenn die TD_ID war nicht da. Danke.
  • Sicher. select case when count(1) = 1 then 'Y' else 'N' end from (select distinct * from td where id = 1) foo.
InformationsquelleAutor tonyf | 2015-10-13
Schreibe einen Kommentar