重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

A 回答 (3件)

No.2さんフォローありがとうございます。


varchar2型ではないなんて考えもしませんでした。
char型だとしたら確かにうまくいきませんね。

>RTIME(テーブルB.住所)
RTRIM(テーブルB.住所) ですね。
    • good
    • 0
この回答へのお礼

RTRIMで 再度試してみます。

お礼日時:2011/01/04 17:24

No.1の方の方法の場合、テーブルBの住所がvarchar2型でないと正しく動作しません。


もしくは、RTIME(テーブルB.住所) LIKE とするかですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/01/04 17:23

LIKE条件で記述すればいいのではないでしょうか。



select テーブルB.住所,テーブルA.氏名ID
from テーブルB inner join テーブルA on (テーブルA.住所 like テーブルB.住所 || '%')
order by テーブルB.住所,テーブルA.氏名ID;

でどうでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/21 18:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す