有没有一种直接的方法来使用SQL查找最后一次出现的字符串的索引?我现在正在使用SQL Server 2000.我基本上需要.NET System.String.LastIndexOf方法提供的功能.一个小的谷歌搜索透露了这个 - 函数来检索最后一个索引 - 但如果你传入一个"文本"列表达式,这不起作用.在其他地方找到的其他解决方案只有在您搜索的文本长度为1个字符时才起作用.
我可能不得不做一个功能.如果我这样做,我会在这里发布,所以你们大家可以看看它,也许可以利用它.
在C#中,我们有String.LastIndexOf方法来获取给定字符串的特定字符位置的最后一个索引.是否有任何类似的功能在SQL Server中执行相同的操作.我试过使用CHARINDEX但无法实现它.
我的表中有这样的路径TBL_Documents:
上传/文档/6093/12/695-Graco-SW_5-15-19.pdf
我需要将它与现在上传的文件进行比较,如下所示:
695-Graco-SW_5-15-19.pdf
我想将表中的路径与上传的文件名进行比较。我尝试substring()在第一个右侧使用/,但我真的不明白子字符串是如何真正工作的。例如,我尝试这样做:
select substring(right(path,1),1,1) as path from TBL_DOCUMENT
Run Code Online (Sandbox Code Playgroud)
但它只给了我右边的第一个字符。我希望看到最后一个/角色之后的一切。
我怎样才能做到这一点?
我试图弄清楚如何在SQL中删除字符串中的字符。数据库中当前的名称如下所示:
引擎-品牌-类别
如何删除所有内容,仅保留“类别”部分?
有趣的是,我目前使用的代码与我想要的相反。它保留了所有内容并删除了“类别”部分。我已经尝试了领先,领先和落后,但仍然获得了相同的结果
select trim(Both'-' from SUBSTRING_INDEX(ad_group,'- ',2))
from farm.GoogleAdGroup GAG
join farm.GoogleCampaign GC on GAG.googlecampaign_id_fk = GC.id
where campaign_type like 'product'
limit 50;
Run Code Online (Sandbox Code Playgroud)
我只需要代码来保留“类别”部分并删除其他所有内容。