Tach!
Mit EXISTS habe ich noch nie gearbeitet. Gehe ich recht in der Annahme, dass in diesem Fall das "resultSetNotEmpty" entweder den Wert 0 (für FALSE) oder den Wert 1 (für TRUE) hat?
Wenn du schon nicht mit Unit-Tests versuchst, robusten Code zu schreiben, dann solltest du wenigstens im Laufe der Entwicklung mit Debug-Ausgaben die beiden Fälle provozieren und dir deren genaues Ergebnis anschauen.
Abgesehen davon hast du ja nun deinen Anwendungsfall offenbart. Eine Lösung kann man immer nur bewerten, wenn man die Aufgabenstellung kennt. Es ist völlig richtig, dass ein EXISTS die Suche nach dem ersten Vorkommen abbrechen kann. Bringt dir das aber in deinem Fall einen Vorteil? Immerhin musst du dafür eine Query mit Subquery erstellen. Wieviele Daten werden denn schätzungsweise in der Tabelle zu liegen kommen? Wenige? Millionen? Selbst wenn es viele sind, kann die Performance ganz hervorragend sein, wenn zum Beispiel ein Index bei der Suche helfen kann. Ich denke, du kannst die Lösung mit EXISTS im Hinterkopf behalten und darauf zurückkommen, wenn du an dieser Stelle Performanceprobleme bemerkst. Natürlich kannst du auch gleich EXISTS verwenden - zum Preis von etwas mehr Komplexität.
dedlfix.