基本上我试图从捕获整个路径的列中获取文件名。在刷新数据库之前,select语句实际上已经工作了。现在它失败了,因为最近没有上传文件。
这是我得到的错误: 错误:传递给RIGHT函数的长度参数无效。
SELECT right(batch_ID, CHARINDEX('\', REVERSE(batch_ID)) - 1) AS [File Name]
from
table1
请帮我弄清楚如何更改语句,如果有空值或者如果charindex找不到'\',它仍然有效。
谢谢!
答案 0 :(得分:0)
一种选择是使用案例陈述,例如:
declare @path as varchar(100);
set @path = '';
select case when CHARINDEX('\', coalesce(@path, ''),1) > 0
then right(@path, CHARINDEX('\', REVERSE(@path)) - 1)
else null end