Die Auswahl von Datensätzen, in denen alle Spalten haben die Daten und sind nicht null
Ich habe eine Tabelle mit Datensätzen, leer/null-Daten in bestimmte Spalten, und ich möchte, um Datensätze zu finden, wo ALLE Spalten haben einen anderen Wert als leer/null ist, ohne eine wirklich lange SQL-Anweisung.
ZB:
SELECT * FROM table
WHERE col1 IS NOT NULL AND col2 IS NOT NULL AND col3 IS NOT NULL AND...
Gibt es eine Möglichkeit, diese kürzen? Oder gibt es eine Möglichkeit, dies zu tun, anders (mit einer SQL-Prozedur vielleicht?)
Das ist der offensichtliche Weg... ich bin gespannt zu sehen, wenn jemand kommen kann, mit einer cleveren Kurzschrift, obwohl. (Obwohl ich vermute, dass Ihre Methode die effizienteste)
InformationsquelleAutor Mr. Meeseeks | 2012-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das einzige, was ich tun würde, zu verkürzen, wäre es, etwas zu tun:
SELECT * FROM table1 WHERE (val1 AND val2 AND val3 AND val4) IS NOT NULL
InformationsquelleAutor Marcus Recck
Wenn Sie mal schauen möchten, nur bei den Zeilen, die Daten enthält, in allen Spalten, würde ich vorschlagen, erstellen einer Ansicht basierend auf der Abfrage, die Sie oben gepostet. So können Sie mit ihm interagieren in eine elegantere und kürzere Möglichkeit.
Eine Ansicht ist eine Art "virtuelle Tabelle", basierend aus einer Abfrage. Wenn Sie regelmäßig möchten, zu tun, irgendeine Art von Komplex zu verbinden oder zu filtern und dann mit einem Blick können erheblich vereinfachen die Abfragen, die Sie benötigen, zu schreiben anderswo.
InformationsquelleAutor SilverSnake
Summe der ISNULL - Funktion auf alle Spalten.
Wenn es beläuft sich auf 0, dann werden alle Spalten Daten
Wenn die Tabelle, die Sie möchten, um zu testen, einfach zu viele Spalten zu überprüfen, und es wäre echte lästige Arbeit zu geben, verwenden Sie INFORMATION_SCHEMA.SPALTE zu Formen die Abfrage für Sie.
Erstelle ich eine Tabelle namens test.mytable wie folgt aussieht:
Können Sie die folgenden Anweisungen für die Erstellung meiner Abfrage für diese Tabelle
Let ' s run diese Aussagen und sehen, was SQL ist, produziert
Ab dort führen Sie die SQL-Anweisungen mit
PREPARE
oder übergeben die SQL in PHPmysql_query
InformationsquelleAutor RolandoMySQLDBA
Anderen Weg, es zu tun ist
Diese können etwas kürzer sein. Nur stellen Sie sicher, dass es kein Leerzeichen zwischen den Anführungszeichen.
InformationsquelleAutor DrinkJavaCodeJava
Gut, es gibt keine Möglichkeit zu verkürzen, aber die Abfrage unten machen können generische für jede Tabelle.
ersetzen Sie "Tabelle1" mit dem Namen der Tabelle, die Sie Abfragen und Sie haben das Ergebnis.
Im Grunde ist dieser dynamische sql-Abfragen der sys.Spalten der Tabelle um alle Spalten gehören zur Tabelle und fügt die
IS NOT NULL
Zustand.InformationsquelleAutor Estefany Velez
InformationsquelleAutor fthiella
Sicher sein, zu ändern :
.
InformationsquelleAutor ALi
Einen anderen Weg, fügen Sie einfach Spalten wie unten
Wenn Sie die Spalten sind nicht Charakter-Datentyp enthält, hat die Spalte umgewandelt werden char mithilfe der cast-Funktion
InformationsquelleAutor Joe G Joseph