在()在SQL中有一个命令用于in(..),它将在表中找到列中指定的每个行在in(...)语句中具有值IN的行。 这很快就可以快速查找列表中的项目。 如果我们能在JSL中做到这一点会很好。
EX:
dt << Select Where( in(col, list) );
而不是:
dt << Select Where( :col == list[1] | :col == list[2] | ... )
第二种方法的缺点显而易见,您需要知道列表的长度。
我可以想到几个与for循环有关的工作,但是大多数都会遇到大数据集中的性能问题。
只需将此添加到我的愿望清单中。
回复:在()<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />谢谢!几分钟后我终于明白了。 我们不是在列中搜索列表中的值,而是在列表中搜索每个单元格中找到的值。
回复:在()同样想法的这个更简单的版本也有效( 选择Where 显然将[1]视为True,[]视为False):
dt << select where(Loc(list, :col));
回复:在()Contains()可以做你想做的事。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
list = {"JANE", "ALICE", "MICHAEL", "ELIZABETH"};
col = Column(dt, "name");
dt << select where(Contains(list, col[]));
回复:在()
dt<<SELECT where="">0);
</SELECT>
这应该做你想要的