2017-01-25 5 views
0

グッド午後への連結フィールド、マッチ変数のリスト

私は潜在的に、長い行の何百ものサフィックスが含まれている別のテーブルに(値ALL_ADDRESSを与えるために連結された)アドレスフィールドのリストと一致するようにしようとしています。

私の所望の出力は、サフィックスがALL_address変数(すなわちPARIS STREET)の一部であるこれらのエントリを表示することです

私は参加せずに連結するとき、これは正常に動作しますが、私は参加し始めたとき、私はエラーを取得します:

select s.suffix, 
      x.key, 
      x.B_ADDR1_TX, 
      x.B_ADDR2_TX, 
      x.B_ADDR3_TX, 
      x.b_addr_city, 
      x.b_addr_postcd, 
      x.b_addr_cntry, 
      x.b_addr_state_cd, 

     x.B_ADDR1_TX || ' ' || x.B_ADDR2_TX || ' ' || x.B_ADDR3_TX || ' ' || x.b_addr_city || ' ' || x.b_addr_postcd || ' ' || x.b_addr_cntry || ' ' || x.b_addr_state_cd as All_Address 

      from test_table AS x 

JOIN suffix_list AS s 

WHERE 

x.All_Address LIKE CONCAT('%',s.suffix,'%') ; 

任意のヘルプは、私はあなたがやろうとしているかわからないんだけど

答えて

0

を大幅に高く評価されます。しかし、適切な構文はjoinためon句が必要です。今思い出すと

from test_table x join 
    suffix_list s 
    on x.All_Address LIKE CONCAT('%', s.suffix, '%') 

、Oracleは表の別名のためasをサポートしていませんので、あなたのクエリは、他の構文問題がある可能性があります。

オラクルで

、これはより一般的のように書くことになります。

from test_table x join 
    suffix_list s 
    on x.All_Address LIKE '%' || s.suffix || '%' 
+0

申し訳ありませんが、SQLとOracleの接続(ロングストーリー)を取り除いた後に切り換えても、これはまだ動作しません。私はそれがONであるべきであることに同意しますが、どちらの方法もあなたのスタイルのように –

0

はしばらくの間、Oracleを使用したがされたのではなかった。

CREATE table t1 (
a varchar(5), 
b varchar(5), 
c varchar(5)); 
INSERT INTO t1 VALUES ('one','two','three'); 
INSERT INTO t1 VALUES ('two','nine','five'); 
INSERT INTO t1 VALUES ('two','one','one'); 

    CREATE TABLE t2 (filter varchar(5)); 
    INSERT INTO t2 VALUES ('one'); 
    INSERT INTO t2 VALUES ('six'); 


    WITH t1new AS (SELECT t1.*, a || ' ' || b || ' ' || c as address FROM t1) 

    SELECT t1new.* 
    FROM t1new,t2 
    WHERE address like CONCAT(CONCAT('%', t2.filter),'%') 

上記の例liveqlオラクルで実行されます。

+0

のように使うことができますが、同じエラーが怖いです:ParseException 13:37行は '|' '' '' '|' –

+0

HUE Hiveであなたの例を試したところ、Oracleのものかどうか疑問に思っていましたが、私も自分のものと同じメッセージをOracleに出しました:ステートメントをコンパイル中にエラーが発生しました:FAILED:ParseException line 1:31は '|'の近くの入力を認識できません'' '' '|' in式の仕様 –

関連する問題