Postgres加入LIKE

时间:2012-09-17 12:31:00

标签: database postgresql postgresql-8.4 postgresql-9.0

在PostgreSQL中我有一个表

tbl1
id -- RCODE -- COUNTRY --
1     US/MSR   United states of America
2     GY/LSR   Germany
3     CA/FSA   Canada

tbl2
id -- Name -- CCODE
33    T1      US        
44    Y1      CA       
55    W1      GY  

可以在tbl1上的字段RCODE上使用LIKE条件加入LIKE条件,在tbl2上使用CCODE吗?这样 我得到的结果是

id --NAME-- RCODE -- CCODE--- COUNTRY

当我给id 44时,我将提供tbl2的id 结果将是

id --NAME-- RCODE -- CCODE--- COUNTRY
44   Y1     CA/FSA   CA       Canada

任何人都可以帮我解决这个问题,它是PostgreSQL

一件事是RCODE中的前两个char与table2中的CCODE相同。

2 个答案:

答案 0 :(得分:6)

select tbl2.name, tbl1.rcode, tbl2.ccode, tbl1.country
from tbl1 
  join tbl2 on substring(tbl1.rcode, 1, 2) = tbl2.ccode

答案 1 :(得分:1)

对于类似的问题,我使用了类似的东西:

select
tbl2.id as id,
tbl2.name as NAME,
tbl1.rcode as RCODE,
tbl1.ccode as CCODE,
tbl1.country as COUNTRY
from tbl1, tbl2
where substring(tbl1.rcode, 1, 2) = tbl2.ccode;

子字符串表达式中的数字是子字符串第一个字符的基于1的索引,以及子字符串的长度。

其他字符串运算符,例如trim(),lower()和upper()也很有用。更完整的可用字符串运算符列表位于:

http://www.postgresql.org/docs/9.3/static/functions-string.html