• 締切済み

文字列のあるキーワードから開始する部分の抽出

ご質問事項 文字列の真ん中くらいに"会員番号○○○○○○"があるのですが、SQL文でその部分だけ抽出したい場合、どのようにしたらよいでしょうか? 状況 文字列の最初から"会員番号"の手前までの文字数が、データによって異なっているケースがあるので、substringで開始位置が定めることが出来ない状況です。 何卒よろしくお願いします。

みんなの回答

  • innoya
  • ベストアンサー率71% (10/14)
回答No.4

こんにちは。 下記のようにsubstringとcharindexを使えばできます。 例文を作成しましたので、下記のSQLを実行してみてください。 DECLARE @Str nvarchar(100) SET @Str = N'こんにちは。山田です。会員番号123456です。ありがとうございます。' --#### 結果 SELECT SUBSTRING(@Str, CHARINDEX('会員番号', @Str), 10) SET @Str = N'こんにちは。会員番号561257です。' --#### 結果 SELECT SUBSTRING(@Str, CHARINDEX('会員番号', @Str), 10)

全文を見る
すると、全ての回答が全文表示されます。
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

CHARINDEX関数で'会員番号'という文字列の開始位置を取得すればいいのではないですか?

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> "会員番号"の手前までの文字数が、データによって異なっている 会員番号と○○○○○○の間に他の文字(例:ハイフン)が入ることは無いのですか? ○○○○○○の桁数は固定ですか?

全文を見る
すると、全ての回答が全文表示されます。
  • t_hirai
  • ベストアンサー率27% (182/660)
回答No.1

SQLでは全体を取得してから、プログラムで、 "会員番号○○○○○○"を抜き出すというやり方では だめなのでしょうか? 私が知らないだけかもしれませんが、 一般的には上記のやりかたで処理すると思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 「・」中点が入った文字列を条件にするとデータを抽出できないです

    「・」中点が入った文字列を条件にすると データを抽出できないです。 うまくいかない例 ------------------------------------------- $name = "春・春・春"; $Sql = "SELECT * FROM TestList"; $Sql .= " WHERE SpName = '".$name."'"; ------------------------------------------- 条件を変数に格納してSQL文に渡すと何も抽出できません。 しかし↓のようにSQLに直に「春・春・春」とすると うまくデータが抽出されます。 うまくいった例 ------------------------------------------- $Sql = "SELECT * FROM TestList"; $Sql .= " WHERE SpName = '春・春・春'"; ------------------------------------------- また「・」中点がない条件では変数で渡しても データがうまく抽出されます。 どうしたら「・」中点が入っている条件を 変数に格納してSQLに渡しても うまくデータが抽出されるでしょうか? どなたかご教示いただけますと助かります。 よろしくお願いします。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • 特定の文字列間を抽出(MAC)

    特定の文字列間の文字列を抽出したいのですがなにか いいソフトはありませんでしょうか?例えば、 <p>△△△</p> <span>◯◯◯</span> <span>□□□</span> という文があったら <span>◯◯◯</span> <span>□□□</span> もしくは ◯◯◯ □□□ を抽出したいのですが。 回答お待ちしています。

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • 文字列データの抽出容易にしたい

    あるログから特定の文字列を抽出したいのですが 方法が思いつかず困っています ログには下記に示したパターンが複数個あります。 TEST: *****: 種別コード  **************** ************************  テスト結果(OKorBAD) *:可変長の文字列 この中からテスト種別コードと テスト結果を抜き出して ☆☆☆☆,OK ★★★★,OK ■■■■,BAD   : : 上記のデータにまとめたいのですがどうすればよいのでしょうか? 私自身はC言語はある程度理解しているつもりですが 文字列処理は苦手です。 このようなケースを対処しようした場合、最適なスクリプト言語 や方法論でも構いませんのでご教示いただければと思います。 いちからじっくり挑戦したいと思っています。 出来れば参考になるコードも合わせて記載していただけると 助かります。 どうか御願いいたします。

  • エクセルで表から文字列を抽出したいのですが・・・。

    例えば、エクセルで表(B1:B100)から「夏の扇風機は安い?」という文字列を抽出したいと思います。 ただ、表では、「夏の扇風機」しかのっていません。 MATCHで場所を抽出して、INDEXで表示しようとしても、文字列が一致しないので、MATCHで場所を探せません。 はじめの5文字だけでMATCH文を作るとか、抽出する他の方法はありませんか? エクセルは、初心者です。 以上、よろしくお願いします。

  • 文字列の置換について

    MySQLデータベース内の文字列を、別の文字列に書き換えたいんです。 例えば、文字列"http://www.xxx.com" を文字列"http://www.yyy.com"に書き換えます。 SQL文で操作して、一気にデータベースの各テーブルに入った大量の文字列を全部置換させたいんです、そのSQL文どういうふうに書きますか? ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

    • ベストアンサー
    • MySQL
  • テキストファイルの一部分を抽出する方法について

    ログファイルのようなテキストファイルの中から一部分だけ抽出することは可能でしょうか。 たとえばタイトルやSQL文、それに結果がダラダラと並んでいる一連のログファイル(テキストファイル)の中から、使いたい結果の部分だけ使用したいと考えております。 具体的には次のような感じです(テキストファイル部分は一字下げています):  --------------------  18,購入年月  SQL>******(省略します)*******  SQL>******(省略します)*******  SQL>******(省略します)*******  顧客番号  購入年月   購入個数  ----------------------------------  0000012   2010/01   4  0000530   2009/12   16  0001234  2009/11  398  3行取得しました。  ----------------------  19,顧客層  SQL>******(省略します)*******  SQL>******(省略します)*******  SQL>******(省略します)*******  ・・・ 以上のテキストファイルの中から、 (1)「顧客番号  購入年月   購入個数」 から (2)「3行取得しました。」 までを抽出したいです。 検索して範囲指定して切り取り…というのが原始的な方法ですが 対象ファイルが数個あるので、Excelで開き、VBA等で対応できればと思っています。 ちなみに(1)の項目名の間は複数スペースで区切られており、顧客~個数まで固定で、同一ファイル内に同じ文字列はないので、検索の条件に使えると考えています。(2)は抽出件数によって「*行」の箇所が変わるうえ、同一ファイル内の他の部分にも登場する文字列です。 (1)から次に初めて出てくる(2)までを抽出 といったことができればと思うのですが、なかなか良い方法が浮かびません。 何か良い方法がありましたらご教示いただければ幸いです。

  • エクセル 同一列内で同じものの抽出

    C1:C20(例)を検索し、同じものがあったら抽出する。  1.「同じもの」は、文字列で、「全部同じもの」、「1部同じものの」の両ケース  2.抽出(表示)の内容(方法?)についてはお任せします。   よろしくお願いいたします。

  • 1列について重複している行を除くかつ,他の列の値で抽出する行を変えたい場合

    SQLSeverを使い,SQL文を作成しているのですが, 下記のA列の重複行を取り除くかつ,B列の「5よりも4」,「4よりも1」,「1よりも2」,「2よりも3」(3>2>1>4>5)の行を抽出したいと考えています.下記の表1を抽出した場合,表2が出るようにしたいです. 表1 A B 1 1 1 3 1 3 1 5 2 1 2 2 2 5 表2 A B 1 3 2 2 もしB列が,5>4>3>2>1の順番ならMAXを使って取り出すことはできたのですが,3>2>1>4>5の場合だと,どんなSQL文にすればよいのでしょうか? よろしくお願いします.

このQ&Aのポイント
  • 定期的に何か印刷することは、インクの乾燥を防ぐために良い方法です。A4用紙には、用紙一面いっぱいに文字や写真を印刷することもできますが、少ない文字数でも十分な結果が得られます。
  • 印刷の頻度については、1ヶ月に1度程度が目安とされています。ただし、具体的な枚数は使用用途や環境によって異なる場合があります。
  • EPSON社製品についての質問ですが、印刷の際にはインクの乾燥を考慮して適度な頻度で行うことがおすすめです。
回答を見る