[SQL Validieren] Haben zwei Query's die gleiche Ausgabe?

Steusi

Nasenbär
Hallo zusammen,

ich möchte gern zwei SQL-Querys vergleichen, ob diese "identisch" sind. Die Gleichheit soll aber nur die Ausgabe betreffen.
Kennt jemand von euch eine Klasse oder ein Code-Snippsel was diese Aufgabe lösen kann? In verwende zur Zeit PHP und Oracle, aber bin für jede Quelle dankbar.

Ansonsten bin ich auch interessiert an Anregungen, wie:
- Hash Berechnung (Problematik Sortierung -> beide Ausgaben müssen erst manipuliert werden)
- MINUS (SQL-Statement, in beiden Richtungen muss das Ergebnis 0 Zeilen ausgeben)

Vorrangig interessiert mich SELECT, damit könnte man INSERT und UPDATE ja auch prüfen, nachdem es angewendet wurde.

Vielen Dank für eure Anregungen.
 
? du gibst dir ja bereits selbst die antwort?

SQL:
select field1, field2, field_n
 from table_x
 MINUS
 select field1, field2, field_n
 from table_y;

und

SQL:
select field1, field2, field_n
 from table_y
 MINUS
 select field1, field2, field_n
 from table_x;

müssen beide ein leeres result set liefern, dann ist der output gleich.
 
Zuletzt bearbeitet von einem Moderator:
Dies klappt leider nur, wenn keine Sortierung angegeben ist.
1. Ich kann nicht prüfen, ob richtig sortiert wurde. Diese Bedingungen würden ignoriert werden
2. Sobald ich ORDER BY in den Queries habe, gibt mir MINUS einen Fehler.

Vielleicht genügt es aber schon, die Ausgabe in einen String umzuwandeln und zu vergleichen. Aber ich bin mir nicht sicher, ob ich dabei etwas übersehe.
 
Zuletzt bearbeitet:
versuche ORDER BY position und nicht name. angenommen die spalte die du sortieren willst ist die erste:

SQL:
SELECT field1, field2, field_n
 FROM table_x
 MINUS
 SELECT field1, field2, field_n
 FROM table_y
 ORDER BY 1;
 
Zuletzt bearbeitet von einem Moderator:
Zurück