SQLserver 的内置函数PARSENAME使用指定的分隔符,无效返回null

 

select  top 100 PARSENAME(REPLACE(image_path,'&&','.'),1) as A
					from ttraffic_vehicle_pass order by pass_time desc

该字段的数据格式

/VehiclePic/370881001/01/20200925/20200925092410703_H6317S_CarPic1.jpg&/VehiclePic/370881001/01/20200925/20200925092410703_H6317S_CarPic2.jpg&&/VehiclePic/370881001/01/20200925/20200925092410703_H6317S_CarPic4.jpg

返回为null,用默认的"."可以分割

参考这个代码测试一下:

1、完整引用的对象名称时
DECLARE @sobjName sysname
set @sobjName='MSSQLSERVER2008.test.dbo.student'
select PARSENAME(@sobjName,1) as ObjectName,PARSENAME(@sobjName,2) as OwnerName,
 PARSENAME(@sobjName,3) as DatabaseName,PARSENAME(@sobjName,4) as ServerName

测试结果:
ObjectName   OwnerName DatabaseName   ServerName
-----------  --------  -------------  -----------------------
student      dbo test        MSSQLSERVER2008


2、不完整引用的对象名称时
DECLARE @sobjName sysname
set @sobjName='MSSQLSERVER2008...student'
select PARSENAME(@sobjName,1) as ObjectName,PARSENAME(@sobjName,2) as OwnerName,
 PARSENAME(@sobjName,3) as DatabaseName,PARSENAME(@sobjName,4) as ServerName

测试结果:
ObjectName   OwnerName DatabaseName   ServerName
-----------  --------  -------------  -----------------------
student      null null        MSSQLSERVER2008

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632