
表現方法が稚拙で申しわけありませんが。
あるテーブルに存在する値を、他のテーブルにある値と前方一致で結合したいと思います。
(1)TBL_A(項目名はA)
(a) 10230
(b) 11350
(c) 30040
(2)TBL_B(項目名はB)
(d) 10200
(e) 11000
(f) 30000
(形式はVARCHAR2,値は数字のみで長さは固定)
上記のようなデータで、TBL_Bに関しては後ろの「0」は無視して
前方一致で結合したいのです。
つまり、(a)と(d)、(b)と(e)、(c)と(f)が結合されるようにしたいのです。
SQL文で表現すると、次のようになります。
TBL_A.A LIKE '102%' OR
TBL_A.A LIKE '11%' OR
TBL_A.A LIKE '3%'
これを次のようなSQLで記述してみました。
TBL_A.A LIKE SUBSTR(TBL_B.B,1,INSTR(TRANSLATE(TBL_B.B,'123456789','XXXXXXXX'),'X',-1,1)) || '%'
以上のSQLで問題ないと思いますが、もっとシンプルな方法があればお教え願います。
DBはORACLE9iです。
No.3
- 回答日時:
もし前方一致させる文字数が固定なら、AとBをsubstrで切った値を使えば、普通に出来ると思います。
where substr(a.a, 1, 3) = substr(b.b, 1, 3)
上の例ではa.aの1文字目から3文字分と、b.bの一文字目から3文字分のみで=の判定をしています。
これで質問の中に書いてある内容のことは出来ると思います。
No.1
- 回答日時:
数字で、前方一致との事なので、
TBL_Aの値とTBL_Bの値の関係は>=の関係になるので
SELECT A,MAX(B) FROM TBL_A,TBL_B
WHERE TBL_A.A >= TBL_B.B
GROUP BY A ;
では如何ですか?
この回答への補足
早速のご回答恐れ入ります。
申しわけありません。質問の仕方が間違っていました。
TBL_Bの項目はBだけではなく、他の項目も必要なのです。
つまり、TBL_Bを検索するときの値として、TBL_AのAを使用したいのです。
実際には「TBL_A.A」は別のSELECT文で変数に代入します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- Visual Basic(VBA) VBAチェックボックスで有効無効切り替えできるように 5 2022/10/21 16:13
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- PHP PHPSpreadsheetを使って関数を繰り返し埋め込みたい 1 2023/05/24 11:33
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関係演算子が無効です。
-
SQL 外部結合についての質問
-
TO_CHAR関数における外部結合に...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
SELECTの結果で同一行を複数回...
-
DataGridViewの、選択されてい...
-
Accessで別テーブルの値をフォ...
-
JSPのNULLレコード表示について...
-
select insertで複数テーブルか...
-
あるカラムのMAX値+1をINSERTし...
-
実績累計の求め方と意味を教え...
-
使うべきでない文字。
-
【初歩】ラジオボタンをつかっ...
-
MERGE文を単体テーブルに対して...
-
[VBA] ADOの Clone と AddNew
-
レコードが存在しなかった場合
-
ADODBのRecordset.Deleteのエラ...
-
GROUP BYを使ったSELECT文の総...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関係演算子が無効です。
-
SQL 外部結合についての質問
-
エラー2「無効な識別子です」
-
自己相関サブクエリと自己結合...
-
外部結合について
-
9iのSQL:1999構文を使用した外...
-
エクセルVBAでSUM関数の位置を...
-
エラー「無効な識別子です」
-
SQL:テーブル結合で該当レコー...
-
range表記をcells表記にしたい
-
LEFT JOINの条件式で=’’を使用...
-
INNER JOINとwhere句
-
2つのSQL(Access)の結果[時刻,...
-
T-SQL 動的に優先順ごとにデー...
-
Excel VBAで、Averageの範囲を...
-
【修正希望】【マクロ】元デー...
-
DBを問わないSQLのチューニング...
-
SQLで後方の文字列を置換する方法
-
TO_CHAR関数における外部結合に...
-
パフォーマンスを考慮したSQL文...
おすすめ情報