うまく表現ができないのですが、
指定した文字列をワイルドカードで検索できる最大の値を検索したいと思っています。
こんなことはSQLを使って効率的に行う方法は無いでしょうか?
例)
M1
M2
P
P2
P22
P23
P233
P2345
と並んでいる表に対し、条件として、P2342と入れた時に、P23の行を検索したい訳です。
(P,P2,P23もP2342に含まれるが、その中で最も大きな値)
select * from mydata where key1 > 'P2342' order by key1 desc
として、逆読みして完全部分一致するレコードが見つかるまで、見つからない場合は、
対象より1文字も合致しないレコードに至るまで、探すしか方法は無いものでしょうか?
No.2ベストアンサー
- 回答日時:
下記のSQLでどうでしょうか。
select top 1 * from mydata where 'P2342' Like key1 & "*" order by key1 desc;
この回答への補足
ちょっと書き直したら、出来ました。
select * from mydata where 'P2342' Like trim(key1)||'%' order by key1 desc
fetch first 1 rows only
SQLってこんなことが出来るんですね。勉強になりました。
どうも有難うございます。
コメント有難うございます。
使っているsql(DB2/UDB)ではエラーになりますので、
select * from mydata where 'P2342' Like key1||'%' order by key1 desc
fetch first 1 rows only
と置き換えてみましたが、エラーは出ないものの、1件も合致しません。
ちょっと意味が違うんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- 経済学 経済学のベルトラン均衡について教えてください。 4 2022/11/23 16:37
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- 工学 2電力測定の実験で出てきた公式で、cosθは力率を表していて、P1とP2は電力計のそれぞれの値です。 2 2023/05/12 11:11
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- 統計学 こんな問題を使って教育するのは、文科省の方針ですか。 3 2022/06/17 09:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- その他(プログラミング・Web制作) Pythonでの不均一なサイコロをつくるプログラミングがわかりません 4 2022/06/07 13:10
- 数学 確率の最大値を求める方法について 確率 Pn<P(n+1)⇄Pn/P(n+1)<1のときと Pn>P 2 2022/07/29 20:15
- ドライブ・ストレージ SSDについて 3 2022/04/18 11:26
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ
-
単一グループのグループ関数で...
-
SQL*Loader Append
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
SELECT FOR UPDATE で該当レコ...
-
BLOB型項目をSQLの検索条件に指...
-
【PL/SQL】FROM区に変数を使う方法
-
デフォルトでデータが表示され...
-
トランザクションログを出力せ...
-
PL/SQL内の共通関数の引数にフ...
-
osqleditについて
-
「数字で始まらない」ものを抽...
-
複数レコードを横並び1レコー...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
ワイルドカード検索として合致...
-
SQLで条件にヒットしたレコード...
-
GROUP BYを使用したCOUNT
-
レコードの更新履歴について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
group byの並び順を変えるだけ...
-
SQL*Loader Append
-
where句中のtrim関数について
-
AccessのSQL文で1件のみヒット...
-
SELECT FOR UPDATE で該当レコ...
-
データ
-
トランザクションログを出力せ...
-
SQLで条件にヒットしたレコード...
-
アクセスのレポートでレコード...
-
「数字で始まらない」ものを抽...
-
引数によってwhere句を切り替え...
-
1レコード全てを改行なしで表...
-
BLOB型項目をSQLの検索条件に指...
-
ACCESS レコードの並び順について
-
デフォルトでデータが表示され...
-
レコードの更新履歴について
-
osqleditについて
-
oracle DB内のデータを増幅す...
おすすめ情報