Вы можете написать UDF для аппроксимации этого синтаксиса. Это не предназначено для воспроизведения синтаксиса рядом с сервера SQL, но показывает, как это можно сделать. Он работает только с пробелами для разрывов слов, но может быть изменен для поддержки других разрывов слов. Он нечувствителен к регистру. Если вы хотите, чтобы регистр был чувствителен, вы можете удалить методы toUpperCase ().
create or replace function NEAR(STR string, STR1 string, STR2 string, DISTANCE float)
returns boolean
language javascript
as
$$
var firstWord = -1;
var secondWord = -1;
var words = STR.split(" ");
for (var i=0; i < words.length; i++){
if (words[i].toUpperCase() === STR1.toUpperCase()) firstWord = i;
if (words[i].toUpperCase() === STR2.toUpperCase()) secondWord = i;
}
return (firstWord >= 0) && (secondWord >= 0) && (secondWord - firstWord <= DISTANCE)
$$;
select near('John Jacob Smith', 'John', 'Smith', 2); --True
select near('John Jacob Williams Smith', 'John', 'Smith', 2); --False