sql - 使用 PARSENAME 查找列表中的最后一项

标签 sql sql-server sql-server-2008 ssms

我在 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/

相关文章:

sql - MS SQL Server - 使用子查询添加计算列

sql - SQL 中的 Case 语句使用 Like

java - 准备语句错误 : java. sql.SQLException : Parameter index out of range (1 > number of parameters, 这是 0)

sql - TSQL 更新 DATETIME 分钟和秒

.net - Login failed for user "xxx"Failed to open the explicitly specified database解决方法

asp.net - 不确定用于同步的 SQL Server 锁的类型

c# - 使用 Windows 身份验证连接到 SQL Server

MySQL 5.6 : Complex Query with Grouped Parameters

mysql - 用于获取 MySql 表行的事件处理程序

sql - 仅当先前的连接没有找到任何内容时才离开连接