substring(? from 1 for length(phonenum))是什么意思啊?

yangmiao212 2007-07-05 02:32:40
StringBuffer sql = new StringBuffer();
sql.append("select * from ");
sql.append(TableDef.IIP_NUMTABMOB);
sql.append(" where substring(? from 1 for length(phonenum)) = phonenum");

dbf = new SqlDB();
dbf.setSql(sql.toString());
dbf.setString(1, phonenum);
sqlrs = dbf.executeQuery();
意思大概我能猜到,关键是请问substring(? from 1 for length(phonenum)这个SQL语句语法是什么?
...全文
748 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangmiao212 2007-07-06
  • 打赏
  • 举报
回复
终于查到了,是Informix里的字符串函数,
语法是:
substring(exp from begin for length);
谢谢楼上的朋友!
ORARichard 2007-07-05
  • 打赏
  • 举报
回复
?='133123433333333334545', phonenum字段的长度为7的话
要执行的语句就是:select * from TableDef.IIP_NUMTABMOB where phonenum='1331234'.(只会执行这一句)
yangmiao212 2007-07-05
  • 打赏
  • 举报
回复
那如果?填充的是1331234,那是不是就是相当于要执行7个select语句?
即:
select * from TableDef.IIP_NUMTABMOB where phonenum=1;
select * from TableDef.IIP_NUMTABMOB where phonenum=13
select * from TableDef.IIP_NUMTABMOB where phonenum=133;
...
select * from TableDef.IIP_NUMTABMOB where phonenum=1331234;
ORARichard 2007-07-05
  • 打赏
  • 举报
回复
from 1是指从变量的第一个字符起。就象SQLServer中的substring(@var,1,len(field1))
yangmiao212 2007-07-05
  • 打赏
  • 举报
回复
那这个from 1是表示什么呢?从表中的第一列?
ORARichard 2007-07-05
  • 打赏
  • 举报
回复
? 在这里应该是一个输入型变量。 substring表示从该变量的第一个字符起,取到phonenum的长度。如,该变量值为:‘Hello World',phonenum的长度为4 则,substring的结果为:'Hell'
yangmiao212 2007-07-05
  • 打赏
  • 举报
回复
哪位高手帮帮我吧。
echiynn 2007-07-05
  • 打赏
  • 举报
回复
可以肯定的是,这绝对不是T-SQL语法...

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧