有没有一种直接的方法来使用SQL查找最后一次出现的字符串的索引?我现在正在使用SQL Server 2000.我基本上需要.NET System.String.LastIndexOf方法提供的功能.一个小的谷歌搜索透露了这个 - 函数来检索最后一个索引 - 但如果你传入一个"文本"列表达式,这不起作用.在其他地方找到的其他解决方案只有在您搜索的文本长度为1个字符时才起作用.
我可能不得不做一个功能.如果我这样做,我会在这里发布,所以你们大家可以看看它,也许可以利用它.
我试图分析出从涉及获取一个字符串值最后一个 指标一个的字符串.目前,我正在做一个涉及反转字符串的可怕黑客攻击:
SELECT REVERSE(SUBSTRING(REVERSE(DB_NAME()), 1,
CHARINDEX('_', REVERSE(DB_NAME()), 1) - 1))
Run Code Online (Sandbox Code Playgroud)
对我来说,这段代码几乎是不可读的.我刚刚升级到SQL Server 2016,我希望有更好的方法.在那儿?
我有一张包含一些数据的表格.它可以看起来像这样的例子:
7 Gelb
8 Schwarz
9 Weiß my color
10 Grau
16 Gelb I
17 Gelb II
18 Gelb III
19 Gelb IV
27 Schwarz I
28 Schwarz II
29 Schwarz III
30 Schwarz IV
31 Schwarz V
32 Schwarz VI
39 Weiß my color III
40 Weiß my color IV
41 Weiß my color V
42 Weiß my color VI
Run Code Online (Sandbox Code Playgroud)
如您所见,在某些记录中,我们在常规中使用罗马数字 <name><space><roman number>
例如,有"Gelb","Weiß我的颜色"和"Schwarz",在罗马会议中也有他们的记录.对于一些人来说,像"Grau",没有重复.
因此,将会有没有罗马数字的唯一颜色名称的记录,例如记录"Grau",并且在表格中它可以包含或不包含一些带有它的记录和罗马数字.
罗马数字总是在最后,如: <name><space><romannumber>
我的目标只是获得独特的名字.因此,我只想提取示例:
7 …Run Code Online (Sandbox Code Playgroud) 如何使用ms sql从[Code]列中获取[Result]列
Id Code
200001 43791
200001 67036
200006 19.09.01.08683
200006 03.01.04.01.64230
200007 19.01.03.02804
Id Result Code
200001 43791 43791
200001 67036 67036
200006 08683 19.09.01.08683
200006 64230 03.01.04.01.64230
200007 02804 19.01.03.02804
Run Code Online (Sandbox Code Playgroud)