sql - 使用SQL获取字符串中分隔符之间的值

标签 sql sql-server

我想从字符串中提取部门值,例如:COUNTRY_SITE_DEPARTMENT.csv,“.”之间的部门。和“_”,我确定这在 SQL 中作为选择查询是可行的,有人可以指出我正确的方向吗?

我在另一个例子中使用了类似的东西,但我运气不好:(

Select substring( LEFT(Col,charindex('.',Col)-1),
       charindex('_',Col)+1,
       len(LEFT(Col,charindex('.',Col)-1))-1 )
FROM FILENAMES;

如有任何帮助,我们将不胜感激。

最佳答案

如果在寻找最后一个 _ 时反转字符串,这是最容易做到的:

SELECT REVERSE(SUBSTRING(REVERSE(Col), CHARINDEX('.', REVERSE(Col)) + 1, 
        CHARINDEX('_', REVERSE(Col)) - CHARINDEX('.', REVERSE(Col)) - 1))
FROM FILENAMES

我假定使用 SQL Server,因为您在查询中使用了 SQL Server 函数。

关于sql - 使用SQL获取字符串中分隔符之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316759/

相关文章:

SQL - 仅在第一次运行时缓慢...无法判断我的更改是否使其更快

sql-server - 遍历所有表,然后遍历所有列数据类型

c# - 时间显示在 SQL 的仅日期字段中

c# - 如何知道在C#代码中具有TRY CATCH处理的存储过程中是否存在错误

sql - 避免在 SQL 中使用相同条件的多个子查询

mysql 选择每个项目的最大日期

php - PostgreSQL:在特定数据库中创建模式 [NOT psql]

mysql - 从两个 INNER JOINS 更新

sql - 在 SQL GROUP BY 查询中,非聚合列使用什么值?

sql-server - 将子查询中的多个结果合并为单个逗号分隔值