2

基本上我试图从捕获整个路径的列中获取文件名。在数据库刷新之前,下面的 select 语句实际上是有效的。现在它失败了,因为最近没有上传文件。

这是我得到的错误:错误:传递给 RIGHT 函数的长度参数无效。

SELECT right(batch_ID, CHARINDEX('\', REVERSE(batch_ID)) - 1) AS [File Name]
from
table1

请帮我弄清楚如何更改语句,以便如果有空值或 charindex 找不到 '\' 它仍然可以工作。

谢谢!

4

1 回答 1

0

一种选择是使用 case 语句,例如:

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
于 2013-06-28T01:03:35.397 回答