例如有一个物理文件(单MEMBER),其中包含有不少重复的纪录,请问我能不能通过建立一个逻辑文件达到SQL里的DISTINCT功能呢?如果可以,这个逻辑文件应该怎么建立?
暴走族 回复于:2004-08-02 10:22:22 |
是我表述不清,还是无法实现? |
kimdai 回复于:2004-08-02 13:23:59 |
用Create View XXX AS select distinct× From × Where *,
或用DDS生成个LF使用文件极的关键字UNIQUE。 |
暴走族 回复于:2004-08-02 15:27:37 |
看来只能 create view 了.谢谢 |
xuguopeng 回复于:2004-08-02 17:44:54 |
DDS里用UNIQUE不行么? |
暴走族 回复于:2004-08-03 09:15:00 |
UNIQUE 是防止重复键值.可我的物理文件本身就有很多重复的,而且以后也会有重复的.加了UNIQUE就会报措了.
我就是想得到一个distinct的效果.看来只能用视图了.可是视图很慢啊. |
hanyu 回复于:2004-08-04 09:16:27 |
view其实也是一种LF,是非键字逻辑文件的特殊形式。所以打开时较慢,但view所依赖的pf变化时,不需要动态维护存储路径,因此不占用额外的资源。
如果你的应用是实时联机方式的,用view确实不合适。 |
ibmxp 回复于:2004-08-04 11:21:05 |
可以把RPG程序改成用标准SQL,指定group by 或distinct,也可以解决一些问题,记录量比较多的时候distinct速度比较慢。
也可以建一个与原表结构一样的PF,只是加上UNIQUE,再加个触发器,或改原来的程序,当写原表时,也写到这个表中,这样是不是也可以解决一点呢? |
utirei 回复于:2005-04-07 16:12:54 |
rpg里可以写嵌套的sql语句吗?还是rpgle里面可以写呢? |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/