13 авг. 2011 г.
Применение SELECT FROM SELECT
Конструкция SELECT FROM SELECT замечательная вещь. Вот здесь приведено решение задачи поиска строк, содержащих все заданные слова в любой последовательности.
Labels:
Firebird
Блог посвящен технологической платформе Гедымин (Gedemin), предназначенной для быстрой разработки экономических приложений. Платформа создана компанией Golden Software of Belarus, Ltd и имеет открытый исходный код.
2 комментария:
Вот ещё вариант выборки:
select t.s
from test t
where ' '||t.s||' ' containing ' blue ' and ' '||t.s||' ' containing ' house '
И для процедуры:
create procedure split_words (S varchar(1024))
returns (w varchar(256))
as
declare variable I integer;
declare variable J integer = 1;
declare variable s1 varchar(1024);
BEGIN
s1 = s || ' ';
while (j < char_length(s1)) do
begin
i = position(' ',:s1,j);
w = substring(:s1 from j for i-j);
j = i+1;
SUSPEND;
END
END
Ясно, что с CONTAINING можно решить. Но там было по условиям:
"Using several LIKE x AND LIKE y, is not the way to go because I don't know how many words will have to find."
Отправить комментарий