我在 SQL 中使用 Parsename,想要提取项目列表中的最后一个元素。我正在使用以下代码。
Declare @string as varchar(1000)
set @string = '25.26.27.28'
SELECT PARSENAME(@string, 1)
这可以正常工作并返回值 28,正如我所期望的那样。但是,如果我将列表扩展至超过 4 个项目,则结果将返回 NULL。例如:
Declare @string2 as varchar(1000)
set @string2 = '25.26.27.28.29'
SELECT PARSENAME(@string2, 1)
我希望它返回值 29,但只返回 NULL
我确信对此有一个简单的解释,有人可以帮忙吗?
最佳答案
PARSENAME
专门设计用于解析 sql 对象名称。后一个示例中的句点数量使其不再是这样的名称,因此调用正确失败。
相反
select right(@string2, charindex('.', reverse(@string2), 1) - 1)
关于sql - 使用 PARSENAME 查找列表中的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296791/