当前位置: 代码迷 >> Sql Server >> 将截取字符串安插报错
  详细解决方案

将截取字符串安插报错

热度:55   发布时间:2016-04-24 23:01:38.0
将截取字符串插入报错
本帖最后由 zhao534wo 于 2013-04-15 21:24:26 编辑
从表1的字段ResultWeeks截取‘-’两边的数字,字段形式如:1-7,2-18,12-15;
将截取的数字分别保存在表2的StartWeek和EndWeek下。
自己写的SQL语句如下:
SELECT 
cast(substring(ResultWeeks,1,CHARINDEX('-',ResultWeeks)-1) as int),
cast(substring(ResultWeeks,CHARINDEX('-',ResultWeeks)+1,len(ResultWeeks)) as int),
FROM table1;
开始时会显示结果,但马上报错,错误为:传递到 SUBSTRING 函数的长度参数无效;
请问应该怎么写?难道只能一行一行的插入?
sql substring 字符串截取报错

------解决方案--------------------
SELECT 
cast(substring(ResultWeeks,1,CHARINDEX('-',ResultWeeks)-1) as int),
cast(substring(ResultWeeks,CHARINDEX('-',ResultWeeks)+1,len(ResultWeeks)) as int),
FROM table1 WHERE  CHARINDEX('-',ResultWeeks)>0
------解决方案--------------------
估计是有null值,导致charindex一开始就获取不了字符串
  相关解决方案