繁体   English   中英

SQL 通配符在 Like 运算符与嵌入表

[英]SQL Wildcard at Like Operator with embedded table

我对 SQL 编程很陌生。 这是我的问题:使用此查询:

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

我想在表达式“txtFilter”中添加一个通配符,以便显示所有以“txtFilter”字段中的第一个字母开头的“Artikelname”。

这个:

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) + "*"

不起作用。

谢谢你的帮助!

使用exists

Select a.Artikelname as Artikel
from Artikel a
where exists (select 1
              from txtFilter f
              where a.Artikelname like 
              f.textFilter||'%' ;
             );

为什么不使用连接,然后使用LIKE

   Select Artikelname as Artikel
  from Artikel a join (Select distinct 
  txtFilter
  from Filter) f on
   a.Artikelname like f.textFilter||'%' ;

* 通配符不是 SQL 标准的一部分——使用 % 代替。 在这种情况下,您可以将 LIKE 运算符与 JOIN 一起使用 - 如果我了解您的目标。 也有正则表达式,但它们没有被普遍实现。 至少 PostgreSQL 有它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM