Wiederholung in dieser SQLite-Abfrage vermeiden?

314
Stilez

Ich verwende SQLite, um Daten zu ändern und auf Fehler zu überprüfen, die nicht über die GUI aus einem Adobe-Programm heraus leicht zugänglich sind. Unüblich hilfreich für Adobe, verwenden sie absolut standardmäßige SQLite 3-db-Dateien.

Die Ausgabe von SQLite Studio (das GUI-basierte Programm, das ich verwende) wird in Excel ausgeschnitten / eingefügt. Daher verwende ich die Abfrage auch zur Automatisierung der umfangreichen Vorverarbeitung / Sortierung / Gruppierung / Bewertung / Fehlerfunktionen, die ich sonst hätte jedes Mal in Excel zu tun.

Meine Abfrage muss so etwas tun (Pseudocode):

SELECT  record_id, (several lines of CASE-WHEN, IF, and other logic)  as record_type, (several almost identical lines of CASE-WHEN, IF, and other logic) as record_subtype  FROM table WHERE condition ORDER BY record_id 

Die Sache ist, ich muss [record_type] in der Logik für [record_subtype] referenzieren.

Ich könnte verschachtelte Abfragen oder Unterabfragen (ich bin mit beiden vertraut) oder sogar eine temporäre Tabelle im Arbeitsspeicher verwenden. Aber, um den Code der Ausgabefelder einfach zu halten, gibt es eine Möglichkeit, direkt auf den bereits berechneten [record_type] zu verweisen, wenn [record_subtype] ausgewertet wird ?

Wenn nicht, wie würde ich es mit einer In-Memory-Tabelle tun, oder wäre es normalerweise schneller, eine verschachtelte Abfrage zu verwenden?

1

0 Antworten auf die Frage