Angesichts die folgende Tabelle:SQL finden Sie den ersten nicht Nullwert mit beliebiger Reihenfolge von
ID | Value
----------
1 | NULL
2 | B
3 | C
4 | NULL
Ich mag den ersten Nicht-Null-Wert aus der Spalte Wert erhalte nach unterschiedlicher Bestellung, zB:
SELECT FIRST_NON_NULL(Value ORDER BY ID) FROM MY_TABLE
Diese Rückkehr B
SELECT FIRST_NON_NULL(Value ORDER BY ID DESC) FROM MY_TABLE
C
Dies wird zurückkehrenP.S. Muss keine Wertfunktion sein, nur die SELECT-Anweisung, die benötigt wird. Vielen Dank.
Bearbeitet: Möchten Sie sehen, ob es eine skalierbare Version geben kann.
ID | Value1 | Value2
--------------------
1 | NULL | AA
2 | B | NULL
3 | C | CC
4 | NULL | NULL
SELECT FIRST_NON_NULL(Value1, Value2 ORDER BY ID) FROM MY_TABLE
Dies wird B zurückkehren, AA
SELECT FIRST_NON_NULL(Value1, Value2 ORDER BY ID DESC) FROM MY_TABLE
Diese C zurück, CC
Wow, das war schnell. Vielen Dank. – user1589188
Entschuldigung, wie machen Sie es skalierbar? Siehe aktualisierte Frage. – user1589188
@ user1589188 Bitte überprüfen Sie die Änderung, die ich gemacht habe. –