Как определить положение конкретного символа / строки в значении столбца строки SQLite? - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть значения в таблице SQLite *, которые содержат количество строк различной длины, соединенных точками, что-то вроде этого:

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

Я хотел бы извлечь (в этомcase) третья подстрока, разделенная точками, чтобы я мог написать что-то вроде

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

Очевидно, что я могу сделать это любым количеством способов программно;Мне интересно, есть ли способ достичь этого в запросе SQLite SELECT?

* Это база данных SharpDevelop Profiler, если кому-то интересно

1 Ответ

1 голос
/ 20 декабря 2011

номер

Как вы упомянули, вы можете работать со строками после того, как выбрали их из базы данных. Или вы можете разделить их на отдельные столбцы, когда они будут сохранены.

Если у вас нет доступа к коду, в котором хранятся данные, вы можете рассмотреть возможность считывания данных целиком, разделения строк и сохранения разделенных токенов в отдельных столбцах новой таблицы. Если данные не слишком велики, вы можете посмотреть на сохранение этой таблицы в новой базе данных памяти, чтобы обеспечить отличную производительность.

То, стоит ли это, зависит от того, можно ли использовать один проход для разделения строк данных много раз. Если данные постоянно меняются, то эта схема, вероятно, не будет работать хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...