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

orachow 2012-11-10 04:57:18

执行更新语句: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 函数的长度参数无效。
语句已终止。

...全文
390 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
-Tracy-McGrady- 2012-12-18
  • 打赏
  • 举报
回复
AcHerat 元老 2012-11-10
  • 打赏
  • 举报
回复
你要在where条件里将[及]不存在的情况排除掉,那么这个语句就会起作用,如果要针对没有[或]的情况,那么楼主要好好考虑该如何去写更新的update语句。
叶子 2012-11-10
  • 打赏
  • 举报
回复
你没写判断呀? 如果[ 或是 ] 不存在 charindex(']',dwgmc)就是0了 0-1=-1,对于substring就溢出了。
唐诗三百首 2012-11-10
  • 打赏
  • 举报
回复
substring()长度参数应有小于0的情况,用如下语句查找.

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

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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