Я застрял, пытаясь объединить like
с левым соединением в Sybase.
Например (хотя в моем случае это немного сложнее), я ищутекст, который не содержит ни o
, ни i
.
Я могу сделать наоборот, то есть текст, содержащий одну из следующих букв:
select numbers.name from
(
select 'one' name union all
select 'two' name union all
select 'three' name union all -- neither %o% nor %i%
select 'four' name union all
select 'five' name union all
select 'six' name union all
select 'seven' name union all -- neither %o% nor %i%
select 'eight' name union all
select 'nine' name union all
select 'ten' name -- neither %o% nor %i%
) numbers,
(
select '%o%' expression union all
select '%i%' expression
) patterns
where
numbers.name like patterns.expression
выбирает все записи, кроме three
, seven
и ten
, как и ожидалось.
Теперь я ищу способ найти эти три записи.Я думал о левом соединении чисел с шаблонами и последующей фильтрации по выражению null.Примерно так:
numbers.name *like patterns.expression and
patterns.expression is null
Очевидно, это не сработает.Итак, я был бы рад за любой указатель в правильном направлении.
Для чего стоит эта версия, над которой я работаю:
select @@version
'Adaptive Server Enterprise/15.0.3/EBF 17156 ESD#3/P/Sun_svr4/OS 5.8/ase1503/2726/64-bit/FBO/Fri Feb 5 05:26:23 2010'