SQLServer PARSENAME用法避免踩坑

使用PARSENAME做字段分割
PARSENAME(str,number),其中str是要分割的字符串,number是指分割后娶的倒数X段
如:

select PARSENAME('123.456.789',1)  /*输出结果为789*/
select PARSENAME('123.456.789',3)  /*输出结果为123*/

2.1 PARSENAME只能依据 ‘.’ 来进行分割
2.2 若带分割字符末尾以 ‘.’ 结尾则无法进行分割

select PARSENAME('123.',1) /*输出结果为null*/
解决办法:
select PARSENAME(reverse('123.'),1)
2.3 将PARSENAME分割的字符串直接转二进制时每个字符会被 ‘·’ 隔开
如:

select convert(varchar,cast(PARSENAME(reverse('123.'),1) as BINARY))  /*输出结果为1·2·3·*/

解决办法:将PARSENAME的结果先转为varchar

select convert(varchar,cast(cast(varchar,PARSENAME(reverse('123.'),1)) as BINARY)) /*输出结果123*/
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值