select left(你的列,charindex('+',你的列)-1),substring(你的列,charindex('+',你的列)+1,8000) from 你的表

解决方案 »

  1.   

    您好:charindex('+',你的列)-1,SQL提示传送了一个无效的length参数。
    select charindex('+',你的列) from 表。是可以得到"+"的位置的。
      

  2.   

    为什么select substring(列,charindex(列,'+')+1,5) from ...可以,而
    select substring(列,charindex(列,'+')-1,5) from ...不可以呢?只不过是把+1变为-1
      

  3.   

    1:  charindex(列,'+') 肯定不对,返回值是0
    2: charindex('+',列) 才行
    3: 如果 charindex('+',列) = 0 , charindex('+',列)-1 = -1当然不行
       而 charindex('+',列)+1是没有问题的
      

  4.   

    charindex(列,'+')-1的值可能会变成0和负数。
      

  5.   

    就是说明,用 - 是不行的吗?
    day1 25+1
    SELECT LEFT(day1, CHARINDEX('+', day1)), SUBSTRING(day1, CHARINDEX('+', 
          day1), 8000) 
    FROM monthreporttable
    结果是25+,+1 如果把CHARINDEX('+', day1)改为CHARINDEX('+', day1)-1就会报错误。