I mehrere Spalte aus einer Tabelle am auswählt und eine der Spalten i erfordern Datensatz von der zweiten Zeile zu holen. Wie soll ich in meiner Abfrage angeben, dass nur diese 1 Spalte aus Zeile 2 abgerufen werden muss? Die SELECT-Anweisung gibt 2 Zeilen zurück, aber Segment 4 muss nur den Wert der zweiten Zeile zurückgeben, den Rückgabewert der anderen Spalte der Zeile 1. Wie soll ich das schreiben?wie nur 1 Spalte 2. Zeile Datensatz zurück
select substrb(segment2,1,30) invtime
, substrb(segment3,1,30) invoice
, substrb(segment4,1,10) invdate
from error_process_log;
Sie müssen in der Lage sein, eindeutig zu bestimmen, was mit 2. Zeile gemeint ist. Die Reihenfolge, in der Daten zurückgegeben werden, wird nur durch Angabe von ORDER BY gewährleistet. Sobald Sie das haben, ist das Abrufen der zweiten Zeile trivial und die Verwendung der analytischen Funktion ROW_NUMBER() ist eine gute Lösung. – BobC
Wenn Sie Oracle 12c verwenden, können Sie sogar die Offset-Klausel verwenden. SELECT * FROM Tabelle ORDER BY 1 OFFSET 1 REIHEN FETCH NEXT 1 NUR ROWS. Dadurch erhalten Sie die zweite Reihe. Aber wie @BobC gesagt hat, musst du etwas bestellen. –