• 締切済み

SQL文 抽出条件 複数の場合のやり方

下記のような状況では どのようにSQL文を書けばよいのか教えてください。 例) テーブルA 氏名ID 住所 12345 東京都XXX区XXXX町1-1-1 12346 埼玉県XXX市XXXX町1-2-1 ・・・ テーブルB 住所(詳細に記載されているものもあれば、都道府県レベルのものもある) 東京都XXX区XXXX町 東京都▲▲区○○ 北海道 埼玉県◆◆市 ・・・ テーブルBに書いていある住所で始まる 全ての氏名IDを テーブルAから取り出したい。

みんなの回答

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

No.2さんフォローありがとうございます。 varchar2型ではないなんて考えもしませんでした。 char型だとしたら確かにうまくいきませんね。 >RTIME(テーブルB.住所) RTRIM(テーブルB.住所) ですね。

1204533
質問者

お礼

RTRIMで 再度試してみます。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

No.1の方の方法の場合、テーブルBの住所がvarchar2型でないと正しく動作しません。 もしくは、RTIME(テーブルB.住所) LIKE とするかですね。

1204533
質問者

お礼

型で このような書き方をしないといけないことがわかりました。 補足 ありがとうございました。

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

LIKE条件で記述すればいいのではないでしょうか。 select テーブルB.住所,テーブルA.氏名ID from テーブルB inner join テーブルA on (テーブルA.住所 like テーブルB.住所 || '%') order by テーブルB.住所,テーブルA.氏名ID; でどうでしょう。

1204533
質問者

お礼

ありがとうございます。 本内容で試してみます。