Im()In SQL gibt es einen Befehl für in (..), in dem jede Zeile in einer Tabelle gefunden wird, für die die angegebene Spalte einen Wert IN der in (...) -Anweisung hat. Dies ist schön, um Elemente in einer Liste schnell zu finden. Es wäre schön, wenn wir das in JSL machen könnten.
EX:
dt << Select Where( in(col, list) );
im Gegensatz zu:
dt << Select Where( :col == list[1] | :col == list[2] | ... )
Der Nachteil der zweiten Methode ist offensichtlich, dass Sie die Länge der Liste kennen müssen.
Ich kann mir verschiedene Workarounds mit for-Schleifen vorstellen, aber die meisten davon werden in großen Datensätzen zu Leistungsproblemen führen.
Füge dies einfach meiner Wunschliste hinzu.
Re: In ()<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Vielen Dank! Nach einigen Minuten habe ich endlich verstanden. Anstatt die Spalte nach den Werten in der Liste zu durchsuchen, durchsuchen wir die Liste nach dem in jeder Zelle gefundenen Wert.
Re: In ()Diese einfachere Version der gleichen Idee funktioniert auch ( Wählen Sie wo behandelt anscheinend [1] als wahr und [] als falsch):
dt << select where(Loc(list, :col));
Re: In ()Enthält () kann tun, was Sie möchten.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
list = {"JANE", "ALICE", "MICHAEL", "ELIZABETH"};
col = Column(dt, "name");
dt << select where(Contains(list, col[]));
Re: In ()
dt<<SELECT where="">0);
</SELECT>
Dies sollte tun, was Sie wollen