以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 学习中的疑惑GetUniqueValues(Filter, Col1, Col2, Col3....) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23554) |
-- 作者:jiaodou -- 发布时间:2012/9/12 13:37:00 -- 学习中的疑惑GetUniqueValues(Filter, Col1, Col2, Col3....) 语法: GetUniqueValues(Filter, Col1, Col2, Col3....) Filter: 条件表达式,请参考表达式的运算符和函数 和 条件表达式 如果只从一列中提取不重复值,那么返回的是一个字符串集合;如果从多列中提取不重复值,那么返回的是一个字符串数组集合,数组的长度等于指定的列数。 在执行以下示例之前,请打开CaseStudy目录下的示例文件"统计演示.Table"。 示例一 列出1999年6月1日后订购过PD01产品的客户名单: Dim Customers As List(Of String)Customers = DataTables("订单").GetUniqueValues("[产品]= \'PD01\' And [日期] > #6/1/1999#", "客户") For i As Integer = 0 To Customers.Count - 1 \'其实用For Each好一点,这里只是顺便提供遍历集合的另一种用法。 Output.Show(Customers(i)) Next
问:为何输出的结果是 CS01 而不是: CS03 CS04 CS01 CS02 CS05 GetUniqueValues函数不是按照取到第一个不相同的字符按顺序保存在Customers字符列表里的吗? |
-- 作者:lin_hailun -- 发布时间:2012/9/12 14:06:00 -- 这个问题不说还真不知道...默认排序了吧。 |
-- 作者:jiaodou -- 发布时间:2012/9/12 14:14:00 -- 如果真是默认排序了,应该在帮助文档里加上函数说明吧,要不然这个函数应用在程序里时,哪里出错都不知道呀,也或许是我理解错了,还希望版主能帮忙解释一下 |
-- 作者:jiaodou -- 发布时间:2012/9/12 14:27:00 -- Dim Customers As List(Of String) Customers = DataTables("订单").GetUniqueValues("[产品]= \'PD01\' And [日期] > #6/1/1999#", "客户") For Each i As String In Customers \'用For Each 结果是一样的,都是进行了排序 Output.Show(i) Next |