3

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とtbl2のCCODEのLIKE条件で結合できますか? 私が結果を得るように

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

私はtbl2のIDを提供します。つまり、ID 44を指定すると、結果は次のようになります。

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

誰かがこのクエリを解決するのを手伝ってくれますか、それはPostgreSQLです

1つは、RCODEの最初の2文字がtable2のCCODEの文字と同じであるということです。

4

2 に答える 2

6
select tbl2.name, tbl1.rcode, tbl2.ccode, tbl1.country
from tbl1 
  join tbl2 on substring(tbl1.rcode, 1, 2) = tbl2.ccode
于 2012-09-17T12:37:11.190 に答える
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

于 2014-08-23T05:41:52.363 に答える