Sybase SQLのような左結合と組み合わせるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/5881586

質問

私はaを組み合わせようとして立ち往生しています 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, seventen 予想通り。

今、私はこれらの3つのレコードを見つける方法を探しています。左の参加について考えました 数字パターン 次に、式で式でフィルタリングします。このようなもの:

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'
役に立ちましたか?

解決

使用する必要があります NOT EXISTS (そうです):

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
where not exists (select null
                    from (
                             select '%o%'  expression union all
                             select '%i%'  expression
                         ) patterns
                   where numbers.name like patterns.expression)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top