| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9867 人关注过本帖
标题:在数据表中如何用SQL查找某字段值最长的记录,并返回这个字段值的长度数字
取消只看楼主 加入收藏
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
结帖率:97.14%
收藏
已结贴  问题点数:5 回复次数:5 
在数据表中如何用SQL查找某字段值最长的记录,并返回这个字段值的长度数字



一个数据表AA.DBF中的一个字段A1(字符型)。这个A1中的值,有的比较长,有的比较少,如:长度最小的是10,最大的是20。

请问一下,我如何用SQL查找A1字段值中LEN()长度最大的值。返回一个数字。但不能特指定值等于20呀,我是举个例子的。
搜索更多相关主题的帖子: SQL 数据 字段 记录 数字 
2010-01-18 17:26
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
再问一下,如何使表格某列的宽度就等于字段值的长度?

还有下面Select的语句中&,怎么是不对?

   zdm='thisform.grid1.column'+ALLTRIM(STR(i))+'.header1.caption'     && 依次取得各字段名
   Select max(len(alltrim(&zdm))) from Zfcg_sjbb into array nwidth   &&  以各字段名查找各字段的最长值,为各列设定宽度  


[ 本帖最后由 YZCZWCB 于 2010-1-18 19:15 编辑 ]
2010-01-18 18:59
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
楼上的,zdm=thisform.grid1.columns(i).header1.caption   错误提示是:“不是一个对象”。

因为我的GRID列是不固定的,是用于用户选择字段,事先不知道多少列的

Select max(len(alltrim(&zdm))) from Zfcg_sjbb into array nwidth


错误提示是:“找不到别名header1”。




alte dbf Zfcg_sjbb alte &zdm c(nwidth(1))  思路是修改字段

错误提示:语法出错。(nwidth(1))  其中的1什么意思呀。

[ 本帖最后由 YZCZWCB 于 2010-1-18 20:44 编辑 ]
2010-01-18 20:20
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 

对了,我就是这个意思/

this.columns(ii).width =tmpa(1)*系数


这个系数值是多少呀?
2010-01-18 21:17
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
最后的办法,修改字段宽度后,再加上一句thiform.grid1.columncount=-1,就能达到预期的效果了
2010-01-19 15:06
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
sele 1
use 表a excl
for ii=1 to fcou()
    lsc =fiel(ii)
    if vart(&lsc)="C"
       sele max(len(allt(&lsc))) from 表a into arra tmpa
       alte dbf 表a alte &lsc c(tmpa(1))
    endif
endfor


以上在实际应用中,很好。但是有个问题,楼上没注意,要修改的字段必须要有值,不能是空值,否则就会出错。我在应用的时,针对出错的情况分析了一下,作了局部调整。

sele 1
use 表a excl
for ii=1 to fcou()
    lsc =fiel(ii)
    if vart(&lsc)="C".and.!EMPTY(&lsc)
       sele max(len(allt(&lsc))) from 表a into arra tmpa
       alte dbf 表a alte &lsc c(tmpa(1))
    endif
endfor


红色部分就是我加上的,在运行中,没有出现错误信息了
2010-01-26 17:08
快速回复:在数据表中如何用SQL查找某字段值最长的记录,并返回这个字段值的长度 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044007 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved