존재하지 않는 경우 SQL 쿼리의 JSL 목록에서 항목을 건너뛰는 방법은 무엇입니까?안녕하세요 여러분,
JSL 목록에서 쿼리하는 스크립트가 있습니다. 그러나 데이터베이스에 무언가가 존재하지 않을 때마다 오류가 발생합니다. 존재하지 않는 항목을 건너뛰고 목록의 다음 값으로 진행할 수 있는 방법이 있습니까?
다음과 같은 예가 있습니다.
NameList = {"John","Jane","Anna","Dominic"};
NameItems = ConcatItems(NameList ,",");
Eval (Parse (Evalinsert("\[
db= Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)")
]\")));;예를 들어 John은 존재하지 않습니다. 건너뛰고 Jane, Anna 또는 Dominic과 함께 가야 합니다.
자동화 및 스크립팅윈도우Re: SQL 쿼리의 JSL 목록에 항목이 없으면 건너뛰는 방법은 무엇입니까?IN 연산자는 목록에 있는 값이 하나도 발견되지 않는 한 실패해서는 안 됩니다. Try() 함수를 사용하여 이 문제를 보호할 수 있어야 합니다.
Eval (Parse (Evalinsert("\[
db= Try( Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)") )
]\")));
또한 IN 연산자는 호출 내의 문자 요소를 따옴표로 묶어야 한다는 것이 내 경험입니다.
WHERE name IN ('John','Jane','Anna','Dominic')
JSL을 아래와 같이 변경하면 IN 연산자 호출이 위 형식으로 변경됩니다.
NameList = {"John","Jane","Anna","Dominic"};
NameItems = "'" || ConcatItems(NameList ,"','") || "'";Re: SQL 쿼리의 JSL 목록에 항목이 없으면 건너뛰는 방법은 무엇입니까?*편집하다
Jim의 반응을 보지 못했습니다. 그래도 반응은 좋다.
이름 목록의 형식이 제대로 지정되지 않은 것 같습니다.
존,제인,애나,도미닉
'John', 'Jane', 'Anna', 'Dominic'이어야 합니다.
Concat Items()를 사용하려면 다음과 같이 해야 합니다.
NameItems = "'" || Concat Items(NameList,"','") || "'"