
こんにちは
DB2 ver 8.1 fixPak5
VB6
にて開発を行っております。
TABLEa の NAMAEa KANKEIa
TABLEb の ADANAb FLAG
というテーブルがあるとします
そしてそれぞれのテーブルに
TABLEa のNAMAEa に '山田'
TABLEb のADANAb に '山'
というデータがはいっていたとき
この2つのデータをLIKE演算子のように結合させたいのですが、どのようにしたらいいのでしょうか。
イメージとしては
SELECT
NAMAEa, KANKEIa, FLAG
FROM TABLEa
LEFT OUTER JOIN
TABLEb
ON NAMAEa LIKE ADANAb%
伝わるでしょうか・・・
できたら1つのSQL文で完結させたいです。
駄目だったらRecordSetにもたせて処理しようかと思いますが、
今後の為にも何か方法があるのでしたら教えてください。
No.3ベストアンサー
- 回答日時:
こんにちは。
マニュアルを確認してみました・・・。
LIKE演算子の右側には、まずString式が必要ですね・・・。
後は何をくっつけてもいいみたいです。
つまり、いきなり列名が来ているのがダメという事です。
ちなみにPOSSTR関数の場合は、検索される側は、列名でもOKですが・・・。
%列名%もダメですよねぇ。
なんかいい方法が思いつきません・・・。
※そもそも、なんでADANAbのテーブルにNAMAEaがないの???
リレーショナルになってないような・・・?
(^^ゞ
この回答への補足
ひょっとしたらそのようなことをできる機能・テクニック自体存在しないかもしれないので、すこししたら、質問閉じさせていただきます。
皆さんに時間を割かせすぎるのも申し訳ないので・・・
何回も回答ありがとうございます。
>※そもそも、なんでADANAbのテーブルにNAMAEaがないの???
>リレーショナルになってないような・・・?
実はADANAbのテーブルは他システムのデータをコンバートしたものを放り込んだテーブルなのです。
しかもそういうデータが定期的に送られてくる環境です。そういうこともあって、データが完全に結合できる状態ではないので、それを整えるちょっとしたツールを作ろうか、ということでこんなややこしいことになっています。。
oracleだったらinstr(a,b) > 0でいけるのに・・・
DB2だと私も思いつかないので質問してみました。
No.2
- 回答日時:
ON NAMAEa LIKE ADANAb || '%'
こんな感じで、%は文字列としてADANAbにつなげてください。ただし、ADANAbが固定長文字列のフィールドでしたら余分なスペースを取る必要があるかもしれません。
#DB2の文字列結合演算子、||でしたっけ?
違ってたらごめんなさい。正しい演算子に置き換えてください。
回答ありがとうございます。
taka451213様のところにも書きましたが、うまくいきませんでした。
DB2の文字列結合は
||かCONCATですね。
どちらでもうまくいきませんでした。><
No.1
- 回答日時:
こんにちは。
DB2って、マニュアル少ないんですよねぇ・・・。
多分それでいいと思いますよ。
NAMAEa LIKE (ADANAb || '%')
動かないかも・・・。
(^^ゞ
回答ありがとうございます。
私も実は試したんですが
「最初のオペランドがストリング式でないか、または 2番目のオペランドがストリングではないため、LIKE 述部、またはPOSSTR スカラー関数が無効です。SQLSTATE=42824」
と出て無効でした。列指定はできないみたいです。
上のエラーのように、POSSTR関数(oracleでいえばinstr?)でも試したんですが、結果同じでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- SQL Server SQLについて質問です。 a表がありその表には従業員名を保存するname列があります。 LIKE演算 1 2022/05/17 17:49
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL テーブル名が可変の場合のクエリの書き方 1 2023/02/17 21:21
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessクエリでの、LIKE条件
その他(データベース)
-
副問合せにLIKE文を使う方法はないでしょうか?
Oracle
-
Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出
Access(アクセス)
-
-
4
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
5
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
6
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
7
Access→Excelへエクスポートすると日付の表示形式が変化する
Excel(エクセル)
-
8
LEFT JOIN あいまいな外部結合
その他(データベース)
-
9
SELECTの結果で同一行を複数回出力する
Oracle
-
10
oracle spool SJIS → UTF-8
Oracle
-
11
途中で改行されたCSVをAccessに正常に取り込むには?
Access(アクセス)
-
12
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
SQLで、Join句で結合したテ...
-
既存データをINSERT文にして出...
-
重複データの一方を削除するSQL...
-
別テーブルを参照し、その内容...
-
ExcelのMatch関数のようなもの...
-
テーブル名が可変の場合のクエ...
-
ACCESSのVBAにてExcelに行...
-
Accessの構成をコピーしたい
-
SQLServerからMDBへのデータバ...
-
ACCESS クエリーでソートの不具合
-
2008年12月現在の日本語対応のM...
-
異なるテーブルの値を比較テー...
-
2つのテーブルをLIKE演算子のよ...
-
結合したテーブルをSUMしたい
-
改行を含んだデータのインポート
-
H2 DataBaseご存知の方教えて...
-
SQLサーバに対するSQL文で抽出...
-
不動産検索サイトのテーブル構成
-
フラグをたてるってどういうこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
副問合せを使わずにUNIONと同様...
-
同一テーブル内での比較(最新...
-
PRIMARY KEYのコピー
-
2つのテーブルをLIKE演算子のよ...
-
結合したテーブルをSUMしたい
-
ExcelのMatch関数のようなもの...
-
ACCESSのVBAにてExcelに行...
-
DB2のSQLコマンドについて
-
データ無し時は空白行にしたい...
-
ADO+ODBCでテーブルに接続する...
-
ACCESS クエリーでソートの不具合
-
改行を含んだデータのインポート
-
複数のテーブルからデータを取...
-
ExcelのVLOOKUP関数の動作をMyS...
おすすめ情報