Seleziona le righe che corrispondono a qualsiasi valore in un elenco
Problema
Supponiamo che tu chieda a un utente di effettuare una selezione. Quando recuperi i valori dall'utente, in genere vengono archiviati in un elenco.Ora devi selezionare i dati che corrispondono ai valori nell'elenco.
Soluzione
L'esempio seguente dimostra come selezionare le righe in una tabella dati che contengono qualsiasi valore archiviato in un elenco JSL. È possibile utilizzare elenchi contenenti valori numerici o stringhe di caratteri, riportati di seguito.Vedi i commenti incorporati per i dettagli.
/* Open a sample data table. */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Create a list of ages. */
myList = {9, 12, 15, 17, 18};
/* Select all rows which have an age that is in the list. */
dt << Select Where( Contains( myList, :age ) );
Wait( 2 ); // For demonstration purposes
/* Create a list of student names. */
myStudents = {"HENRY", "ROBERT", "BARBARA", "SALLY", "MARION"};
/* Select all rows which have any of the names in the list. */
dt << Select Where( Contains( myStudents, :name ) );
Ri: Selezionare le righe che corrispondono a qualsiasi valore in un elencoAh, carino 
Temevo che contenesse fosse più lento. ma veramente ...
nota a me stesso: usa contiene 

Visualizza altro...
Ri: Selezionare le righe che corrispondono a qualsiasi valore in un elencoC'è qualche necessità specifica di utilizzare una sintassi più complessa? Potresti usare Loc con Any
Names Default To Here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
dt << Select Where(Any(Loc({"JANE", "DAVID", "PATTY"}, :name)));
Ri: Selezionare le righe che corrispondono a qualsiasi valore in un elencostesso risultato, sì.
ma sintassi diversa.
Re: Seleziona le righe che corrispondono a qualsiasi valore in un elencoNon è per questo che useresti Contains()?
Ri: Selezionare le righe che corrispondono a qualsiasi valore in un elencodt << Select Where( Any( Row() == Index( 3, 5 ) ) );
è cool 
c'è qualcosa di simile per
dt << Select Where( Any( :name == {"JANE", "DAVID","PATTY"}) );?