Ich muss nur eine Spalte auswählen, wenn sie in der Tabelle existiert, sonst kann sie auf null gesetzt werden.SQL - bedingt eine Spalte auswählen, wenn vorhanden
Probentabelle unten, kann sagen, dass die marks
col es nicht notwendig sein wird, so muß überprüft werden, wenn es
Tabelle 1 existiert:
name marks
joe 10
john 11
mary 13
Abfrage:
select
name,
marks if it exists else null as marks1 -- pseudo code
from
table1
Was sollte in Zeile gehen, um marks
auszuwählen?
Wie würden Sie * nicht * wissen, ob 'marks' eine Spalte in table1 ist? –
Sie sollten die Art, wie Sie Ihr Datenbankschema und die Migration verwalten, wirklich überdenken. Die Tatsache, dass Sie nicht wissen, ob eine Spalte existiert oder nicht, könnte darauf hinweisen, dass Sie den falschen Prozess zum Erstellen und Aktualisieren Ihrer Tabellen in der Datenbank verwenden. Auch: eine 'marks1' Tabelle könnte auch ein Zeichen für ein nicht normalisiertes Design sein. Sie könnten etwas ähnliches mit dynamischem SQL erreichen, aber es wäre ** viel besser, die Art und Weise zu korrigieren, wie Sie Ihre Tabellen verwalten. –
@a_horse_with_no_name Ein breiterer Punkt - aber das ist keine Frage zu Schema und Migration - echte Daten sind chaotisch :) und der Kontext ist keine Anwendung, es sind einige reale Daten, die von einer Quelle stammen, auf die ich keine Kontrolle habe - es kann oder auch nicht alle erwarteten Spalten - die Frage war wirklich in diesem Kontext, wenn es möglich ist überprüfen Sie dies. – user3206440