if ltrim(rtrim(@chrwhere))<>''
begin
set @a1=charindex('code'>=,@chrwhere)+5
set @a2=charindex('code'<=,@chrwhere)+5
set @b1=charindex('cquantity'>=,@chrwhere)+6
set @b2=charindex('cquantity'<=,@chrwhere)+6
set @c1=charindex('xquantity'>=,@chrwhere)+5
set @c2=charindex('xquantity'<=.@chrwhere)+5
set @d1=charindex('cmoney'>=,@chewhere)+6
set @d2=charindex('cmoney'<=,@chrwhere)+6
set @e1=charindex('xmoney'>=,@chrwhere)+5
set @e2=charindex('xmoney'<=,@chrwhere)+5 if @a1>5 set @scode=substring(@chrwhere,@a1,charindex('''',@chrwhere,@a1)-@a1)
if @a2>5 set @ecode=substring(@chrwhere,@a2,charindex('''',@chrwhere,@a2)-@a2)
if @b1>6 set @scquantity=substring(@chrwhere,@b1,charindex('''',@chrwhere,@b1)-@b1)
if @b2>6 set @ecquantity=substring(@chrwhere,@b2,charindex('''',@chrwhere,@b2)-@b2)
if @c1>5 set @sxquantity=substring(@chrwhere,@c1,charindex('''',@chrwhere,@c1)-@c1)
if @c2>5 set @exquantity=substring(@chrwhere,@c2,charindex('''',@chrwhere,@c2)-@c2)
if @d1>6 set @scmoney=substring(@chrwhere,@d1,charindex('''',@chrwhere,@d1)-@d1)
if @d2>6 set @ecmoney=substring(@chrwhere,@d2,charindex('''',@chrwhere,@d2)-@d2)
if @e1>5 set @sxmoney=substring(@chrwhere,@e1,charindex('''',@chrwhere,@e1)-@e1)
if @e2>5 set @exmoney=substring(@chrwhere,@e2,charindex('''',@chrwhere,@e2)-@e2)
End
这段代码是原代码中的一段,打个比方,比如:
set @a1=charindex('code'>=,@chrwhere)+5
这段代码中,最后的+5代表着什么意思?能否打个比方或者举个比较好理解的例子呢?还有就是下面if后面的语句我就有点懵了,因为不理解+5是说返回的数值加上5还是怎么的。所以才请各位帮忙举个比较形象点得例子,先谢谢啦~PS:如果各位需要的话我可以把原代码发上来。
begin
set @a1=charindex('code'>=,@chrwhere)+5
set @a2=charindex('code'<=,@chrwhere)+5
set @b1=charindex('cquantity'>=,@chrwhere)+6
set @b2=charindex('cquantity'<=,@chrwhere)+6
set @c1=charindex('xquantity'>=,@chrwhere)+5
set @c2=charindex('xquantity'<=.@chrwhere)+5
set @d1=charindex('cmoney'>=,@chewhere)+6
set @d2=charindex('cmoney'<=,@chrwhere)+6
set @e1=charindex('xmoney'>=,@chrwhere)+5
set @e2=charindex('xmoney'<=,@chrwhere)+5 if @a1>5 set @scode=substring(@chrwhere,@a1,charindex('''',@chrwhere,@a1)-@a1)
if @a2>5 set @ecode=substring(@chrwhere,@a2,charindex('''',@chrwhere,@a2)-@a2)
if @b1>6 set @scquantity=substring(@chrwhere,@b1,charindex('''',@chrwhere,@b1)-@b1)
if @b2>6 set @ecquantity=substring(@chrwhere,@b2,charindex('''',@chrwhere,@b2)-@b2)
if @c1>5 set @sxquantity=substring(@chrwhere,@c1,charindex('''',@chrwhere,@c1)-@c1)
if @c2>5 set @exquantity=substring(@chrwhere,@c2,charindex('''',@chrwhere,@c2)-@c2)
if @d1>6 set @scmoney=substring(@chrwhere,@d1,charindex('''',@chrwhere,@d1)-@d1)
if @d2>6 set @ecmoney=substring(@chrwhere,@d2,charindex('''',@chrwhere,@d2)-@d2)
if @e1>5 set @sxmoney=substring(@chrwhere,@e1,charindex('''',@chrwhere,@e1)-@e1)
if @e2>5 set @exmoney=substring(@chrwhere,@e2,charindex('''',@chrwhere,@e2)-@e2)
End
这段代码是原代码中的一段,打个比方,比如:
set @a1=charindex('code'>=,@chrwhere)+5
这段代码中,最后的+5代表着什么意思?能否打个比方或者举个比较好理解的例子呢?还有就是下面if后面的语句我就有点懵了,因为不理解+5是说返回的数值加上5还是怎么的。所以才请各位帮忙举个比较形象点得例子,先谢谢啦~PS:如果各位需要的话我可以把原代码发上来。
我没看懂那个>=干嘛的。,,
declare @chrwhere varchar(100)='1234code 56''789';
declare @a1 int,@a2 int;if ltrim(rtrim(@chrwhere))<>''
begin
set @a1=charindex('code',@chrwhere)+5
set @a2=charindex('cquantity',@chrwhere)+6
select @a1,@a2;
if @a1>5
select substring(@chrwhere,@a1,charindex('''',@chrwhere,@a1)-@a1)
end--这个运行一下。这个是表示取code后面 到引号的那个字符串,我觉得有可能是取别名的感觉,但是那个引号做为分段还是想不清楚的。
那个大于等于符号是做什么的还真不知道
这段代码就是说返回大于10的数据,而下面的set @a1=charindex('code'<=,@chrwhere)+5
就是说返回小于20的数据,就是这么个意思。
这个是原代码
if exists (select name from sysobjects where name='sa_idp') drop procedure sa_idpcreate procedure sa_idp
@chrwhere varchar(2000)
AS
declare @scode varchar(20),@ecode varchar(20), -------------------------存货编码
@scquantity float,@ecquantity float,-----------------采购数量
@sxquantity float,@exquantity float,-----------------销售数量
@scmoney money,@ecmoney money,-----------------------采购金额
@sxmoney money,@exmoney money,-----------------------销售金额
@cname varchar(30),-----------------------------------存货名称
@a1 int,@a2 int,@b2 int,@b2 int,@c3 int,@c3 int,@d1 int,@d2 int,@e1 int,@e2 intif ltrim(rtrim(@chrwhere))<>''
begin
set @a1=charindex('code'>=,@chrwhere)+5
set @a2=charindex('code'<=,@chrwhere)+5
set @b1=charindex('cquantity'>=,@chrwhere)+6
set @b2=charindex('cquantity'<=,@chrwhere)+6
set @c1=charindex('xquantity'>=,@chrwhere)+5
set @c2=charindex('xquantity'<=.@chrwhere)+5
set @d1=charindex('cmoney'>=,@chewhere)+6
set @d2=charindex('cmoney'<=,@chrwhere)+6
set @e1=charindex('xmoney'>=,@chrwhere)+5
set @e2=charindex('xmoney'<=,@chrwhere)+5 if @a1>5 set @scode=substring(@chrwhere,@a1,charindex('''',@chrwhere,@a1)-@a1)
if @a2>5 set @ecode=substring(@chrwhere,@a2,charindex('''',@chrwhere,@a2)-@a2)
if @b1>6 set @scquantity=substring(@chrwhere,@b1,charindex('''',@chrwhere,@b1)-@b1)
if @b2>6 set @ecquantity=substring(@chrwhere,@b2,charindex('''',@chrwhere,@b2)-@b2)
if @c1>5 set @sxquantity=substring(@chrwhere,@c1,charindex('''',@chrwhere,@c1)-@c1)
if @c2>5 set @exquantity=substring(@chrwhere,@c2,charindex('''',@chrwhere,@c2)-@c2)
if @d1>6 set @scmoney=substring(@chrwhere,@d1,charindex('''',@chrwhere,@d1)-@d1)
if @d2>6 set @ecmoney=substring(@chrwhere,@d2,charindex('''',@chrwhere,@d2)-@d2)
if @e1>5 set @sxmoney=substring(@chrwhere,@e1,charindex('''',@chrwhere,@e1)-@e1)
if @e2>5 set @exmoney=substring(@chrwhere,@e2,charindex('''',@chrwhere,@e2)-@e2)
End