如何实现?(20分)

  • 主题发起人 主题发起人 kscitic
  • 开始时间 开始时间
K

kscitic

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说我想实现这样一个操作,我想检索一个字段的前六位是某个特定字符的所有数据,
例如:SELECT * FROM TABLE1 WHERE SUBSTRING(DG_CKZH,1,6)='732321',
但是好像SUBSTRING这样不行,或者说用SELECT * FROM TABLE1 WHERE copy(DG_CKZH,1,6)='732321'
这样也不行,请问如何实现,数据库是SQL SERVER7。0
 
SELECT * FROM TABLE1 WHERE DG_CKZH like '732321%'
 
你的写法是可行的(SQL2000下通过,SQL97没安装),你再试
 
虽然可行但效率不高,建议用sword_liu的方法
 
同意sword_liu
 
那用FILTER方法又如何实现呢?如果在TABLE表中我想用FILTER实现上述方法如何实现?
 
Table1.Filter:=Format('Level=''%s''',
  • );

    其中Level是字段名称,List是string变量,%s表示返回变量
    你的这句可以用
    a:='732321';
    Table1.Filter:=Format('DG_CKZH=''%s''',[a]);
 
有时用FILTER方法不好,数据多了FILTER速度慢,且把不用的数据拿到前台,增加了数据
传输量
 
To:kscitic,
SELECT * FROM TABLE1 WHERE SUBSTRING(DG_CKZH,1,6)='732321',
這樣的語法肯定沒問題,並是上面所說的方法最好的一個,
你檢杳一下DG_CKZH字段的類型是甚麼,如果是varchar肯定沒問題,
如果是數字則SELECT * FROM TABLE1 WHERE SUBSTRING(convert(varchar(20),
DG_CKZH),1,6)='732321',如果是日期以不同了

 
谢谢些贴已结
 
后退
顶部