传递给 LEFT 或 SUBSTRING 函数的长度参数无效

当使用LEFT或SUBSTRING函数时遇到长度参数无效的错误,通常是因为CHARINDEX找到的'.'位置在字符串开头或者不存在。通过添加条件判断避免出现负数长度,例如使用CASE WHEN或确保返回值大于0。同时,文章提到了(reverse函数的使用,用于获取字符串最后一个/之后的值。参考链接提供了更多reverse函数的使用详情。
摘要由CSDN通过智能技术生成

LEFT(TNAME,CHARINDEX(’.’,TNAME)-1) 取.前面的值
SUBSTRING(TNAME,1,CHARINDEX(’.’,TNAME) - 1)取.前面的值
reverse倒置函数,取最后一个/后的值

问题:传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

   SELECT   SUBSTRING(TNAME,1,CHARINDEX('.',TNAME) - 1) AS NAME,count(1) AS NUM 
  FROM (
   SELECT reverse(SUBSTRING(reverse(TNAME),1,CHARINDEX('/',reverse(TNAME)) - 1)) AS TNAME
     from finelogdb.dbo.FINE_RECORD_EXECUTE 
    WHERE tname LIKE '%人力资源%'
  ) T
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值