如何确定SQLite字符串列值中特定字符/字符串的位置?

时间:2011-12-20 14:21:43

标签: sqlite

我在SQLite表*中有值包含许多不同长度的字符串,用句点连接,如下所示:

SomeApp.SomeNameSpace.InterestingString.NotInteresting
SomeApp.OtherNameSpace.WantThisOne.ReallyQuiteDull
SomeApp.OtherNameSpace.WantThisOne.AlsoDull
SomeApp.DifferentNameSpace.AlwaysWorthALook.LittleValue

我想提取(在这种情况下)第三个以句点分隔的子字符串,这样我就可以编写类似

的内容
SELECT interesting_string, COUNT(*)
FROM ( SELECT third_part_of_period_delimited_string(name) interesting_string )
GROUP BY interesting_string;

显然,我可以通过编程方式做到这一点;我想知道在SQLite SELECT查询中是否有任何方法可以实现这一点?

*这是一个SharpDevelop Profiler数据库,如果有人好奇的

1 个答案:

答案 0 :(得分:1)

没有

如您所述,您可以在从数据库中选择字符串后使用字符串。或者,您可以在存储时将它们拆分为单独的列。

如果您无权访问存储数据的代码,您可能需要考虑完整地读取数据,拆分字符串并将拆分标记存储在新表的单独列中。如果数据不是太大,您可能会考虑将此表存储在新的内存数据库中以提供出色的性能。

这是否值得取决于是否可以多次使用一次分割数据字符串。如果数据不断变化,那么这个方案可能效果不好。