select * from table1 where age like SUBSTRING ((select age from table1 where name='李四'),0,1)||%

||%是什么啊?Stringsql="select*fromtable1whereAgelikeSUBSTRING((selectAgefromtable1whereNa... ||%是什么啊?

String sql="select * from table1 where Age like SUBSTRING ((select Age from table1 where Name='李四'),0,1);查询语句写成这样的话出错:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'Age like SUBSTRING ((select Age from table1 where Name='李四'),0,1)' 中。
展开
 我来答
随o天
2013-01-09 · TA获得超过3158个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2031万
展开全部
select * from table1 where age like SUBSTRING ((select age from table1 where name='李四'),0,1)||%语句中,除了'李四'),的“,”中文错误外,%号需要加上单引号 '%' 。
这个语句条件的效果是age的第一位||'%',意思是取值为某一个年龄段。
如果age的第一位是2则,取值范围是20~29;age第一位是3,则取值范围是30~39。...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-01-09 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5169万
展开全部
李四'),0,1)第一个逗号是中文的了,改成英文
追问
我刚才把这句分解成几句完成了,但是有一个问题,例如李四32岁,那么代码的意思应该是找年龄里有3的,而不是第一位是3的,会把23这样的查找出来。
追答
你的语句应该只能显示为空啊,substring是从1开始计算长度的,
而且用like不加通配符的话与等号是一样的作用,
要想查第一位是3的话,就left(age,1)=(select left(Age,1) from table1 where Name='李四')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式