在SQL中使用列字段或regexp运算符

时间:2016-03-17 07:21:57

标签: sql sql-like vertica regexp-like

我有一个问题:

Select * 
from table 
where 
field1 LIKE '%12345%' (12345 being a column value : field2) *Works*

我想在LIKE运算符中使用列字段值而不是硬编码。 尝试使用concat:

where field1 LIKE concat(concat('%',field2), '%') *doesnt work*

尝试使用regexp_like:

where regexp_like(field1, Cast(field2 as character)) *doesnt work*

2 个答案:

答案 0 :(得分:0)

只使用一个concat

where field1 LIKE concat( '%',TRIM(field2), '%') 

答案 1 :(得分:0)

见下文:

dbadmin=> create table test1 (a varchar(100));

CREATE TABLE
dbadmin=> 

insert into test1 values('Good morining ');
 OUTPUT
--------
      1
(1 row)

dbadmin=> select * from test1 where a like '%'||a||'%';
       a
----------------
 Good morining
(1 row)