Postgres Join with LIKE



在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 条件与 tbl2 上的 CCODE 连接? 这样我得到的结果为

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

我将提供 TBL2 的 ID,即)当我给出 ID 44 时结果将是

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

谁能帮我解决这个查询,就是PostgreSQL

一件事是RCODE中的前两个字符与表2中的CCODE相同。

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

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

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

相关内容

  • 没有找到相关文章

最新更新