在这个示例表中,我试图在 :Number 中选择值为 2 的行,然后从 :letter 中获取值“A”,然后在 :Letter 中选择所有包含“A”的行。


我写了这个脚本,但它不起作用。
dt= current datatable();
dt <<SELECT where=""></SELECT>
看着日志
s = {“A”、“A”、“A”、“B”、“B”、“B”};
并且在脚本末尾没有选择任何行。
什么地方出了错?
谢谢
我认为您应该根据您的脚本选择所有行,因为 s 包含来自 Letter 列的所有值,而不仅仅是那些与数字 2 的字母匹配的值,然后您检查当前行的字母是否在该列表中(它总是在)。
有很多方法可以做你想做的事。 这是我最有可能使用的方法(数据表下标
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(6),
New Column("Letter", Character, "Nominal", Set Values({"A", "A", "A", "B", "B", "B"})),
New Column("Number", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4, 5, 6]))
);
num_rows = dt << Get Rows Where(:Number == 2);
show(num_rows);
letters_of_interest = dt[num_rows, "Letter"];
show(letters_of_interest);
dt << Select Where(Contains(letters_of_interest, :Letter));
您还可以将 << Select Where 与 << Get Selected Rows 结合使用(一个示例从选择位置获取值)
谢谢你。 我当然错过了“获取行部分”
经过一番挖掘,我想出了这个脚本
dt= current datatable();
dt <<ROW selection=""></ROW>