SQL Подстановочный знак в Like Оператор со встроенной таблицей - PullRequest
0 голосов
/ 07 апреля 2020

Я довольно новичок в SQL программировании. Вот моя проблема: с этим запросом:

Select Artikelname as Artikel
from Artikel
where Artikelname Like (Select txtFilter from Filter)

Я хотел бы добавить подстановочный знак в выражение "txtFilter", чтобы отображались все "Artikelname", которые начинаются с первой буквы в поле "txtFilter ".

Это:

Select Artikelname as Artikel
from Artikel
where Artikelname Like ((Select txtFilter from Filter)*)

или это:

Select Artikelname as Artikel
from Artikel
where Artikelname Like (Select txtFilter from Filter) + "*"

не работает.

Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Использование exists:

Select a.Artikelname as Artikel
from Artikel a
where exists (select 1
              from txtFilter f
              where a.Artikelname like 
              f.textFilter||'%' ;
             );
0 голосов
/ 07 апреля 2020

Почему бы не использовать соединение, а затем использовать LIKE

   Select Artikelname as Artikel
  from Artikel a join (Select distinct 
  txtFilter
  from Filter) f on
   a.Artikelname like f.textFilter||'%' ;
0 голосов
/ 07 апреля 2020

Подстановочный знак * не является частью стандарта SQL - используйте вместо него%. В этом случае вы можете использовать оператор LIKE с JOIN - если я понял, к чему вы стремитесь. Есть также регулярные выражения, но они не реализованы повсеместно. По крайней мере, у PostgreSQL они есть.

...