Wie überspringe ich ein Element in der JSL-Liste in einer SQL-Abfrage, wenn es nicht vorhanden ist?Hallo zusammen,
Ich habe ein Skript, das Abfragen aus der JSL-Liste durchführt. Es wird jedoch immer dann eine Fehlermeldung ausgegeben, wenn etwas in der Datenbank nicht vorhanden ist. Gibt es eine Möglichkeit, nicht vorhandenes zu überspringen und mit dem nächsten Wert in der Liste fortzufahren?
Ich habe dieses Beispiel:
NameList = {"John","Jane","Anna","Dominic"};
NameItems = ConcatItems(NameList ,",");
Eval (Parse (Evalinsert("\[
db= Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)")
]\")));;Wenn John beispielsweise nicht existiert, sollte er übersprungen und mit Jane, Anna oder Dominic verknüpft werden
Automatisierung und SkripterstellungWindowsBetreff: Wie überspringe ich ein Element in der JSL-Liste in einer SQL-Abfrage, wenn es nicht vorhanden ist?Ein IN-Operator sollte nur dann fehlschlagen, wenn keiner der Werte in der Liste gefunden wird. Sie sollten dieses Problem mit einer Try()-Funktion schützen können
Eval (Parse (Evalinsert("\[
db= Try( Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)") )
]\")));
Außerdem habe ich die Erfahrung gemacht, dass Ihr IN-Operator die Zeichenelemente innerhalb des Aufrufs in Anführungszeichen setzen sollte.
WHERE name IN ('John','Jane','Anna','Dominic')
Wenn Sie Ihre JSL wie folgt ändern, ändert sich der Aufruf des IN-Operators in die obige Form
NameList = {"John","Jane","Anna","Dominic"};
NameItems = "'" || ConcatItems(NameList ,"','") || "'";Betreff: Wie überspringe ich ein Element in der JSL-Liste in einer SQL-Abfrage, wenn es nicht vorhanden ist?*bearbeiten
Ich habe Jims Antwort nicht gesehen. Aber gute Resonanz.
Es sieht nicht so aus, als ob die Namensliste richtig formatiert ist.
John, Jane, Anna, Dominic
Sollte „John“, „Jane“, „Anna“, „Dominic“ sein.
Wenn Sie Concat Items() verwenden möchten, müssen Sie etwa Folgendes tun:
NameItems = "'" || Concat Items(NameList,"','") || "'"