在线等待中,SQL语句该怎么写? TO==>fire_zxv(辉)的记录是无序的有可能是abcdeaabcabcdab 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有这样的SQL语句,你要自己写程序来在所有的记录中查找!… TO==>fire_zxv(辉) 数据库中跟本不是这样的记录,我只不过用这样的形式表示一下意思! TO==>fz_zhou(vcfan) ( 不会吧??? CString a;(你输入)int i = a.Getlength();select * form Table1 where LEN(ID1)<i; DECLARE @B_ID varchar(20)DECLARE @ID varchar(20)Set @ID = @B_ID+'%'Select * from Table1 where ID1 Like @ID//@B_ID为a 你把上述SQL语句稍加该变,VC就可用。 有病哦!不可能一句SQL就搞掂! fire_zxv(辉) :如果记录为:a,ab,b,bc,abc,bca,你的方法恐怕就 yanglx(ylx) :如果输入的为"abc"就该是 Select * from Table1 where ID1 Like "abc%"这样好象也不对呀! 回:Sale_Boss(水果店老板) 那么就查询每次输入的第一遍 Select * from Table1 where ID1 Like "abc%"中的LIKe后面是"你输入的第一个字符+%" CString strFilter;int i = a.Getlength();//a 为你输入的字符串。int j;strFilter="Where";For(j=1;j<i;j++){strFilter=strFilter+"ID="+left(a,j)+"or";} To 复人: yanglx(ylx) 回:Sale_Boss(水果店老板) 那么就查询每次输入的第一遍好象不太明白,可不可以 To 复人: yanglx(ylx) 如果输入的为"abc"就该是 Select * from Table1 where ID1 Like "a%"则显示的是a,ab,abc,可也有可能显示为a,ab,abc,abcd,abcdef呀! 回:Sale_Boss(水果店老板) 你可以看看问题,其实每次只是查字串的第一个字符用LIKE "a%"就可以实现的 yanglx(ylx) : 如果输入的为“abcd”但我同时也想把“acb”,"acd","adc"...等等去掉!我只要的到a,ab,abc,abcd you can do as follow:SQL String"Select * from Table1 where ID1<"abcdef" order by ID1" dididy(didi):如果有记录为0010010100102010010101我输入“0010201”,就会的到001,00101,0010201,0010101,而我想显示的是 001 0010201(*数据库中的记录是字符串) 正确的SQL语句写法如下,你可以试一试"SELECT Table1.ID1 FROM Table1 WHERE (((Table1.ID1)<"abcde"))ORDER BY Table1.ID1" TO==>sky_blue(老衲) Access2000+ADO+VC6.0+SP5+Win2K P _variant_t vID;_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance("ADODB.Recordset");m_pRecordset->Open("SELECT * FROM table1",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);CString strFilter;int i = a.Getlength();//a 为你输入的字符串。int j;For(j=1;j<i;j++){ strFilter = a.left(a,j); m_pRecordset->MoveFirst(); while(!m_pRecordset->adoEOF) { vID = m_pRecordset->GetCollect("ID"); if(vID = strFilter) { printf(vID); } m_pRecordset->MoveNext(); }}以上好象类型还需要转换一下就行了 fire_zxv(辉) ::::::>我只好试试 利用SQL语句中的LEN和SUBSTRING函数试试1 用LEN(VARNAME)函数取变量长度2 用SUBSTRING(VARNAME,1,i)3 例如:VARNAME='0011' 则LEN(VARNAME)=4 用一个循环调用SUBSTRING(VARNAME,1,i)可得到 i=1 SUBSTRING(VARNAME,1,1)='0' i=2 SUBSTRING(VARNAME,1,2)='00' i=3 SUBSTRING(VARNAME,1,3)='001' i=4 SUBSTRING(VARNAME,1,4)='0011' 正则同时匹配多个词,大家帮忙瞧一下! 为什么安装了MDAC2.7还是打不开后缀名为 .udl 文件 孙鑫VC++程序设计 视频下载 对话框中绘制图形问题。 等待结帖中...TransmitFile的另类用法? 如何改变音量!! 在对话框中设置树型控件选中状态为什么无效? 关于PVIEW95的疑惑? 问下,如果判断一个链接是文件还是网页? 想用messagebox弹出下当前年,该怎么做 为什么它总是说我" unexpected end of file found " 我觉得不象有错啊,请问可能的原因有什么 ? 我想做一个实现做图功能的程序,应该怎么实现?
数据库中跟本不是这样的记录,我只不过用这样的形式表示一下意思!
TO==>fz_zhou(vcfan) (
不会吧???
int i = a.Getlength();
select * form Table1 where LEN(ID1)<i;
DECLARE @B_ID varchar(20)
DECLARE @ID varchar(20)
Set @ID = @B_ID+'%'
Select * from Table1 where ID1 Like @ID//@B_ID为a
a,
ab,
b,
bc,
abc,
bca,你的方法恐怕就
如果输入的为"abc"
就该是 Select * from Table1 where ID1 Like "abc%"
这样好象也不对呀!
那么就查询每次输入的第一遍
中的
LIKe后面是"你输入的第一个字符+%"
int i = a.Getlength();//a 为你输入的字符串。
int j;
strFilter="Where";
For(j=1;j<i;j++){
strFilter=strFilter+"ID="+left(a,j)+"or";
}
那么就查询每次输入的第一遍好象不太明白,可不可以
如果输入的为"abc"
就该是 Select * from Table1 where ID1 Like "a%"
则显示的是a,ab,abc,
可也有可能显示为a,ab,abc,abcd,abcdef呀!
你可以看看问题,其实每次只是查字串的第一个字符
用LIKE "a%"就可以实现的
如果输入的为“abcd”但我同时也想把“acb”,"acd","adc"...等等去掉!我只要的到a,ab,abc,abcd
SQL String
"Select * from Table1 where ID1<"abcdef" order by ID1"
001
00101
0010201
0010101
我输入“0010201”,就会的到001,00101,0010201,0010101,
而我想显示的是 001 0010201
(*数据库中的记录是字符串)
"SELECT Table1.ID1 FROM Table1 WHERE (((Table1.ID1)<"abcde"))
ORDER BY Table1.ID1"
Access2000+ADO+VC6.0+SP5+Win2K P
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM table1",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
CString strFilter;
int i = a.Getlength();//a 为你输入的字符串。
int j;
For(j=1;j<i;j++){
strFilter = a.left(a,j);
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
vID = m_pRecordset->GetCollect("ID");
if(vID = strFilter)
{
printf(vID);
}
m_pRecordset->MoveNext();
}
}
以上好象类型还需要转换一下就行了
1 用LEN(VARNAME)函数取变量长度
2 用SUBSTRING(VARNAME,1,i)
3 例如:VARNAME='0011' 则LEN(VARNAME)=4
用一个循环调用SUBSTRING(VARNAME,1,i)可得到
i=1 SUBSTRING(VARNAME,1,1)='0'
i=2 SUBSTRING(VARNAME,1,2)='00'
i=3 SUBSTRING(VARNAME,1,3)='001'
i=4 SUBSTRING(VARNAME,1,4)='0011'