在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相同。
答案 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