Wie erstelle ich eine temporäre Ergebnismenge für die Verwendung in einer SQL ohne Erstellen einer Tabelle und Einfügen der Daten?Oracle - Erstellen Sie eine temporäre Ergebnismenge für die Verwendung in einer Abfrage
Beispiel: Ich habe eine Liste von, sagen wir 10 Codes zum Beispiel. Ich möchte dies in eine Abfrage einfügen und dann die Datenbank abfragen, um zu sehen, welche Codes in dieser temporären Liste in einer Tabelle nicht existieren.
Wenn es bereits in einer Tabelle ist, kann ich so etwas wie:
SELECT
ITEM_CODE
FROM
TEMP_ITEMS
MINUS
SELECT
ITEM_CODE
FROM
M_ITEMS
Gibt es einen Weg ohne PL mit/SQL und reine SQL eine temporäre Rowset zu erstellen, bevor die Abfrage? Bitte antworten Sie nicht mit so etwas wie:
SELECT 1 FROM DUAL
UNION ALL
SELECT 2 FROM DUAL
Ich bin irgendwie an etwas gedacht, wo ich meine Codes in einer IN-Anweisung zur Verfügung stellen kann, und es stellt sich, dass in Reihen für die Verwendung in einer späteren Abfrage.
Edit: so weiß jeder mein Ziel hier, im Grunde bekomme ich manchmal eine Liste von Produktcodes, die ich finden muss, welche in der Liste nicht in unserem System eingerichtet sind. Ich möchte einen schnellen Weg, dies in eine SQL-Anweisung zu werfen, so dass ich sehen kann, welche nicht im System sind (anstatt Daten usw. zu importieren). Ich habe diese in der Regel in Excel, dann eine Formel tun, wie:
="'"&A1&"',"
Damit ich meine durch Kommata getrennte Liste erstellen kann.
Was meinen Sie, wenn Sie sagen, Sie haben eine Liste? Ich nehme an, dass Sie sich nicht auf eine PL/SQL-Sammlung beziehen. Stellen Sie fest, dass Sie etwas wie eine durch Komma getrennte Zeichenfolge haben, die eine Liste darstellt? Und Sie möchten diese Zeichenfolge in SQL analysieren, um separate Zeilen mit den einzelnen Codes zu erhalten? –
Ja das ist richtig. So etwas wie (‚A‘, ‚B‘, ‚C‘) – Lock