sql - SQL Server中有LastIndexOf吗?

标签 sql sql-server sql-server-2016

我正在尝试从字符串中解析出一个值,其中涉及获取 last indexstring 。目前,我正在做一个可怕的黑客攻击,涉及反转字符串:

SELECT REVERSE(SUBSTRING(REVERSE(DB_NAME()), 1, 
    CHARINDEX('_', REVERSE(DB_NAME()), 1) - 1))

对我来说这段代码几乎不可读。我刚刚升级到 SQL Server 2016,希望有更好的方法。 有吗?

最佳答案

如果您想要最后一个 _ 之后的所有内容,请使用:

select right(db_name(), charindex('_', reverse(db_name()) + '_') - 1)

如果您想要之前的所有内容,请使用left():

select left(db_name(), len(db_name()) - charindex('_', reverse(db_name()) + '_'))

关于sql - SQL Server中有LastIndexOf吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002025/

相关文章:

MySQL - 将来自同一个表的多个选择组合成一个结果表与一个组

sql - 我需要将专为 MySQL 设计的查询翻译为适用于 SQL Server 2005

mysql - 如何向我的 SQL 查询添加 NOT 子句

sql - 如何将报告从一台服务器传输到另一台服务器? SSRS

sql-server - SQL 2016 - 将 XML 转换为 Json

json - 如何使用 TSQL 将 JSON 列解析为表

SQl 输出到 CSV(不带单引号)

mysql - 如何将存储过程从 MS SQL 转换为 MySql

sql - 在 SQL 中读取 XML BOOLEAN 值

sql-server - 是什么导致 SQL LocalDB 出现 "The specified LocalDB version is not available on this computer"错误?