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
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen, ob das folgende ist schnell genug für Sie:
Können Sie auch versuchen, diese :
In dieser Art und Weise Sie group by id und zählt, wie viele unterschiedliche Kombination gibt es.
Wenn nur 1 , so dass alle Zeilen haben die gleiche Menge von Werten, ansonsten ist es nicht.
Hier ist eine kleine Abfrage, die Sie möglicherweise versuchen wollen aus (schließlich, Sie konnte es einfach versuchen, herauszufinden, eine bessere
MINUS
- Anweisung für Sie):