首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

版主,传递到 SUBSTRING 函数的长度参数无效,求解释啊

2012-12-14 
版主,各位高手,传递到 SUBSTRING 函数的长度参数无效,求解释啊???执行更新语句:update entity_indexset WJ

版主,各位高手,传递到 SUBSTRING 函数的长度参数无效,求解释啊???

执行更新语句:update entity_index  set WJH=
substring(dwgmc,charindex('[',dwgmc)+1,charindex(']',dwgmc)-charindex('[',dwgmc)-1) 
from entity_index where dwgmc like '%0600%'
为什么出现这个错误啊,求方法
消息 536,级别 16,状态 5,第 1 行
传递到 SUBSTRING 函数的长度参数无效。
语句已终止。

[最优解释]
substring()长度参数应有小于0的情况,用如下语句查找.


select dwgmc,charindex(']',dwgmc)-charindex('[',dwgmc)-1 'length'
from entity_index 
where dwgmc like '%0600%'
and (charindex(']',dwgmc)-charindex('[',dwgmc)-1)<0

[其他解释]
你没写判断呀? 如果[ 或是 ] 不存在
charindex(']',dwgmc)就是0了 
0-1=-1,对于substring就溢出了。
[其他解释]
你要在where条件里将[及]不存在的情况排除掉,那么这个语句就会起作用,如果要针对没有[或]的情况,那么楼主要好好考虑该如何去写更新的update语句。

热点排行