大家好,
我有两个不同的数据表,我需要查找并选择另一个表中是否存在该单词。
我尝试使用 Contains() 但不起作用。请帮忙
这是一个例子:
dt1
dt2
| 狗与大猩猩 |
| 老鼠、长颈鹿 |
| 鲨鱼、鲸鱼、企鹅 |
| 鸵鸟&鸟 |
| 狮虎牛 |
结果(选择了粗体字符的文本):
dt2
| 狗与大猩猩 |
| 老鼠、长颈鹿 |
| 鲨鱼、鲸鱼、企鹅 |
| 鸵鸟&鸟 |
| 狮虎牛 |
这是完成您正在寻找的任务的一种方法。请注意,我相信您显示结果的表格错误地选择了第 3 行。
Names Default To Here( 1 );
// Create the tables
dt1 = New Table( "Lookup", Add Rows( 5 ), New Column( "key", Character, Set Values( {"dog", "cat", "fish", "bird", "cow"} ) ) );
dt2 = New Table( "Base",
Add Rows( 5 ),
New Column( "Target", Character, Set Values( {"dog&gorilla", "mouse, giraffe", "shark, whale, penguin", "ostrich&bird", "lion&tiger,cow"} ) )
);
// Place all key values into a list
KeyList = dt1:key << get values;
// Loop across the keys and search each row of Target for the
// match
For Each( {val}, keyList,
For Each Row(
If( Contains( :Target, val ),
Row State( Row() ) = Selected State( 1 )
)
)
);

只是一个后续问题,我可以使用此选定的行来匹配其他表吗?就像更新一样?
我不明白你的问题。但是,你可以轻松地创建仅包含所选行的基表子集,然后可以从该表更新另一个表。以下是执行子集设置的 JSL
dt3 = dt2 << Subset( selected columns( 0 ), selected rows( 1 ) );