今夜无解!!如何才能统计出表中字段HM下数据字符数≤3的记录? (100分)

  • 主题发起人 主题发起人 pyk1
  • 开始时间 开始时间
P

pyk1

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下表:
BH HM
001 2839
002 566
003 2345
004 254
005 34567
... ...
问:如何才能统计出表中字段HM下数据字符数≤3的记录? 谢谢!
 
length(table.fieldbyname('HM').asstring)
 
只能一条一条的查吧
数据多了可真要了亲命了 :P
能不能再输入的时候就做好标志?
 
to lither:
您好,我能用QUERY列出所有的记录在DBGRID中吗?
非常感谢您的回答!
 
可以!用Table 更简单:在Table的Filter中写上:HM<1000 Filtered中变为True
 
SQL.Add('select bh where Length(HM)<=3')
 
to lswilson:
请您仔细看题!!
 
Select bh from table where hm like ___
用通配符 _
你表一个字符
 
要统计的要加个Sum函数相信这个谁都会吧
 
to pipi
我不知道是不是我理解错误
像你这样的高手会不知道SQL里的通配符
 
FOR SQL Server 2000:
Please use:
select * from TableName WHERE LEN(HM)<=3

Delphi的本地数据库我找不到相应的函数,请向其他人查询。
 
to kingron:
虽然问题没解决,但还是要谢谢您!
 
请说清楚点,HM是什么类型的 
 
select *
from tablename
where cast(hm,integer)<1000
 
什么数据库,如果是sql server
SELECT * FROM tablename WHERE LEN(HM)<=3;
如果是interbase,自己写一个len函数就行了.
 
如果是数值型的话
select * from tablename where len(rtrim(convert(hm as char(20))))<=3
还有一种更简单的
select * from tablename where hm<1000
如果是字符型的话
上面有了呵
 
to pyk1:
如果是ORACLE数据库:
select * from aTable where length(hm) <= 3;
如果hm是数字形的话,应该先转化成字符型,如下:
select * from aTable where length(to_char(hm))<=3;
如果是SQL_SERVER数据库:
应该和上面的方法类似,只是取长度的函数与转化函数的名称可能不同,你自己
试验吧,我这没有MS_SQL的环境。
 
是吗?难道我问题没看清楚?
如何才能统计出表中字段HM下数据字符数≤3的记录?是统计出记录数或者进行汇总,
问题都一样 嘛.
SQL.Add('Select bh,hm from tablename where length(hm)<3');//hm是字符型
或SQL.Add('Select bh,hm from tablename where length(IntToStr(hm))<3')//hm是整形
这样选出了bh,hm后,对Fields[0],Fields[1]又有什么操作不能做呢?
再不行,如果说上面的sql语句有错,那么全部将记录选出来
SQL.Add('Select * from tablename');
然后根据Field[0],Fields[1]中的数据进行判断,然后进行操作嘛.
 
我用的是PARADOX 7 HM是字符型。
以上方法我试了,都不行!!
 
老兄,不会吧,都说到这个份上了还不行.
你将所有的记录选出来select hm from table,
然后Length(Fields[0].AsString)不就可以判断出来了嘛.
with query1 do
begin
CLose;
SQL.Clear;
SQL.Add('Select * from yourTableName where true');
Open;
while not eof do
begin
if Length(Fields[1].AsString)<3 then .....;
next;
end;
end;
 
后退
顶部