有没有这样的函数:取一个datawindow中某一列中的不重复的值,返回到一个数组中?

youngyey 2002-12-03 04:26:47
例如:A B两个字段
数据:2000 隐隐约约与
2000 地方核苷酸克林顿分
2001 啊收到发生
2002 活动啊双方
2002 电风扇高速度收到奉公守法
fun(A)
返回:'2000','2001','2002'
有吗?
...全文
220 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
youngyey 2003-01-11
  • 打赏
  • 举报
回复
请不要再考虑从数据库中取值了.
各位还是用代吗来实现吧,
请写出自己的方案,我运行后效率最佳的得分.
youngyey 2002-12-05
  • 打赏
  • 举报
回复
请不要再考虑从数据库中取值了.
各位还是用代吗来实现吧,
请写出自己的方案,我运行后效率最佳的得分.
bounty 2002-12-03
  • 打赏
  • 举报
回复
1、如果你想用数据窗口得到数据表中的某列的不重复的值可这样做:
根据这个表建立一个数据窗口然后:打开sql定义,选择convert to syntax,直接写sql语句:select a form tablename group by a;然后返回数据窗口你会发现系统会自动生成一个计算列;预览后,数据窗口中只列出不重复的数据(数据窗口有翻译sql语句自动显示的功能不一定非得通过向导产生sql语句)。
2、如果你想在一个已有的数据窗口中得到不重复的值恐怕是得写代码了.

newskysoft 2002-12-03
  • 打赏
  • 举报
回复
自己写函数当然可以搞定,但是如果数据量真的有几十万那么在前台处理怎么都很慢,所以最佳方案是根据dw.object.datawindow.tab.select取出所在表和列然后动态生成sql语句就行了
rshmiao 2002-12-03
  • 打赏
  • 举报
回复
用getitemstring()来筛选吧
xiaozg118 2002-12-03
  • 打赏
  • 举报
回复
但是 你的数据窗口的数据源为何会看不见呢?
youngyey 2002-12-03
  • 打赏
  • 举报
回复
xiaozg118(肖) :
谢谢!
xiaozg118 2002-12-03
  • 打赏
  • 举报
回复
不好意思 没有看见你写的“不能根据数据源来select” :(
youngyey 2002-12-03
  • 打赏
  • 举报
回复
rshmiao(迷路) :自己做吧

怎么自己做,SYbase又不是我家的.
大家请从程序的效率的角度来想怎么实现比较好?

xiaozg118 2002-12-03
  • 打赏
  • 举报
回复
long ll_arr[],ll_emp
int li_arr = 0
declare dist cursor for
select distinct a
from table
using sqlca;
open dist;
fetch dist into :ll_emp;
do while sqlca.sqlcode = 0
li_arr = li_arr + 1
ll_arr[li_arr] = ll_emp
fetch dist into :ll_emp;
loop
close dist;
这样数组ll_arr[]就是你要的啦 不过我没有测试 只是凭想象写的
但这样做的思路应该不会错!
youngyey 2002-12-03
  • 打赏
  • 举报
回复
balloonman2002(学) :
如果我知道数据源,这是一个最简洁的方法,可是现在我不能根据数据源来select,我只能从datawindow中取数据.
rshmiao 2002-12-03
  • 打赏
  • 举报
回复
自己做吧
youngyey 2002-12-03
  • 打赏
  • 举报
回复
我是希望有PB的内植函数,用程序当然实现的方法很多,我也试过逐行取出来比较,效率最差,我又采取找到一个以后过滤,再找,但是当数据量达到20万行时实在是无法等待,效率!!!!!!!
balloonman2002 2002-12-03
  • 打赏
  • 举报
回复
1、用“SELECT DISTINCT A FROM 表”来取不重复记录即可;
2、逐行取值,然后和已有数据比较是否已存在即可;
andyzq 2002-12-03
  • 打赏
  • 举报
回复
用find()函数找,find函数找出datawindow中满足条件的记录数.
chenminyan 2002-12-03
  • 打赏
  • 举报
回复
dw_1.object.data ( 1,1,3,1)
这个函数是取第一行到第三行的第一列数据,返回的值可以赋给一个数组。
但是它不能消除重复的值。
888888888888 2002-12-03
  • 打赏
  • 举报
回复
你用游标把!里面加个数组
dotnba 2002-12-03
  • 打赏
  • 举报
回复
我不知道。只知道可以Sum不重复的。
但是你可以分组,这样每个组里的A就不重复了。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧