Sql 如何获取两个不同字符之间的值
我有一根长度不同的绳子。例如,这些值是:Sql 如何获取两个不同字符之间的值,sql,sql-server,Sql,Sql Server,我有一根长度不同的绳子。例如,这些值是: \\gogbg\statements\invoices\2020\02\02\343554.csv \\gogbg\statements\invoices\2019\02\04\90654324.csv 我需要之前和\之后的值,例如343554和90654324 使用SQL Server-如何检索这些值?您可以尝试以下方法(例如,可以将其放入标量值函数中): 这将返回所需的值-343554假定您在一列中有该值。如果字符串始终以“.csv”结尾,则简单的
\\gogbg\statements\invoices\2020\02\02\343554.csv
\\gogbg\statements\invoices\2019\02\04\90654324.csv
我需要
之前和\
之后的值,例如343554
和90654324
使用SQL Server-如何检索这些值?您可以尝试以下方法(例如,可以将其放入标量值函数中):
这将返回所需的值-
343554
假定您在一列中有该值。如果字符串始终以“.csv”结尾,则简单的方法是:
select t.*,
replace(right(t.str, charindex('\', reverse(t.str)) - 1), '.csv', '')
from (values ('\\gogbg\statements\invoices\2020\02\02\343554.csv'),
('\\gogbg\statements\invoices\2019\02\04\90654324.csv')
) t(str) ;
对于变量后缀,可以使用:
select t.*,
left(v.ending, charindex('.', v.ending) - 1)
from (values ('\\gogbg\statements\invoices\2020\02\02\343554.csv'),
('\\gogbg\statements\invoices\2019\02\04\90654324.csv')
) t(str) cross apply
(values (right(t.str, charindex('\', reverse(t.str)) - 1))) v(ending);
是一个傻瓜。在这个网站上,你应该尝试一下,然后发布你的尝试。@AutumnSunflower:如果你觉得这个答案帮助你解决了你的问题,那么请。这将表达你对那些花自己的时间帮助你的人的感激之情。
select t.*,
left(v.ending, charindex('.', v.ending) - 1)
from (values ('\\gogbg\statements\invoices\2020\02\02\343554.csv'),
('\\gogbg\statements\invoices\2019\02\04\90654324.csv')
) t(str) cross apply
(values (right(t.str, charindex('\', reverse(t.str)) - 1))) v(ending);