日期:2014-05-17  浏览次数:20462 次

将截取字符串插入报错
本帖最后由 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一开始就获取不了字符串