• ベストアンサー

データ中の文字列置換方法

以下の様なデータがあり項目Aが’B01’の場合は★として置換し、’B01’以外はNULL値として置換するSQL(ORACLE)について教示お願い致します。 <データの内容> 項目A A00 A01 B01 C01 B01 D01 <出力結果>      ←NULL      ←NULL ★      ←NULL ★      ←NULL

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

DECODE(項目A, 'B01', '★', NULL) とかでよいのでは。

yas0527
質問者

お礼

早速回答ありがとうございました。

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

関連するQ&A

  • PLSQLで文字列置換

    よろしくお願いします。 PLSQLで可変長のCSVファイルを読み込み、ある特殊文字があった場合、その 特殊文字が含まれている項目ごとNULLにし、またCSVファイルを出力する。 というプログラムを作りたいのですが、CSVファイルの読込み、書き出しのやり方 は判ったのですが、文字列置換がどうすればいいかわかりません。 またファイルはマルチレイアウトで、カラム数とも不定です。 例) 入力ファイル: A,B,C,D,ABCDEFG,FF,GG となっている場合、'E'という文字があるカラムはNULLで出力する というときに 出力ファイル: A,B,C,D,,FF,GG としたいのです。 ご教授下さい。

  • SQLで後方の文字列を置換する方法

    表現方法が稚拙で申しわけありませんが。 あるテーブルに存在する値を、他のテーブルにある値と前方一致で結合したいと思います。 (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です。

  • 文字列の置換

    AファイルのA1セルからBファイルのC1セルにデータを反映させたとします。 その際に以下のように文字列を複数置換させたいのです。 A1セル   C1セル りんご → みかん みかん → ぶどう なし  → 空欄 空欄  → 空欄 上記のようにセルのデータを複数置換することはできるのでしょうか? 又、置換できるならどの関数を使えばよいのでしょうか?

  • Excel置換関数を用いて複数の文字列を置換したい

    上手く置換ができずに困っています。よろしくお願いします。 文字を入力した列の隣に、数値化する列を作成しようと思っています。 置換項目を6つ設定しようと思っているのですが、 A=4 B=3 C=2 D=1 E=0 F=0 の条件です。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","4"),"B","3"),"C","2"),"D","1"),"E","0"),"F","0") これではできませんでした...。 どなたか、わかる方がいらっしゃいましたら、ご教授願います。

  • 複数列のデータ(数値&文字)を結合させて1列にまとめる方法

    (1) 一行にA列、B列、C列があり、各行のいずれか1つの列に、必ずデータが入っています。(データの入っていないセルは「0」が表示) (2) データの入っているセルからデータを取り出し、D列の同じ行のセルに移します。 (3) 結果、D列には、A列~C列のデータが1列に表示される (例) No A列 B列 C列  D列 1  1A         1A 2        2B   2B  3     3C      3C 指定した複数列のデータを1列にまとめて表示する関数またはSQLを教えて下さい。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。

  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java
  • 一致したデータ同士を文字列で繋げるには?

    何か方法があれば教えて頂きたのです。 SQLで一致したデータの項目同同士を繋げることができるかどうか。 具体的には以下のような。 ID   名前 ------------ A1 SQL A1 My A2 Server のような結果が出るようなSQL文を作ったとして ID   名前 ------------ A1 SQL,My A2 Server みたいな同じIDの名前を例のようなカンマとかスラッシュ 等を間に入れてつなげていくなんてことできますか? 実際にはSQL文で出たデータを各配列にそれぞれデータに入れて使う のでSQL文の中で仮に出来なくても結果に対してそのようにつなげることが可能かどうか。

    • ベストアンサー
    • MySQL
  • A列の指定した位置にB,C列の文字を置換させる方法 2

    お世話になります。 昨日以下のような質問をさせていただきました。 *********** Excel2003で、A列の指定した位置にB,C列の文字を置換させる機能はありますか。 例 *にB列の文字を、¥にC列の文字を置換。 A   |B |C 1 (*)\(z)| あ| 2 2 (*)\(z)| 3 | 4     ↓ 1 (あ)2(z)|あ | 2 2 (3)4(z) | 3 | 4 ************ そして回答をいただき、そのうちの一つ「セルD1に数式で表示させるのなら =SUBSTITUTE(SUBSTITUTE(A1,"*",B1,1),"z",C1,1) 」を使わせていただきました。 この関数を用い、60行ほどある置換作業を短時間で終えることが出来喜んでいたのですが、その何時間か後に別ファイルで同じ作業を試みたのです。しかし今度は上手くいきませんでした。 一行目は難なく置換できたのですが、前回上手くいったやり方と同じ作業をしているのに、2行目以降の置換結果が1行目と同じになってしまいます。 こちらの過去ログやGoogleで調べましたが、自分でも理解できる解決策を見つけられず再度質問させていただきました。 よろしくお願いいたします。

  • Bシェルでファイル中の文字列置換の方法について

    Bシェルで複数のファイルを読み込み、 ファイル中のデータの先頭から6バイトがある特定の文字列の場合はそのままで、特定の文字列以外は空白に置換して出力したいのですが、 どのようにすればよいのでしょうか? お手数ですが、ご教示ください。

  • ある条件でのSQLの取得方法について

    以下の条件でのSQLのデータの取得方法が分かりません。 2つのテーブルがあるとします。 ・テーブルA キー   項目1 10     X 20     Y ・テーブルB キー  項目2  項目3 10     5    C 10     6    D 12     6    E ここで取得する条件として ■テーブルAにあるのは、必ず取得します。 ■テーブルAのキーとテーブルBのキーは繋がり、繋がったテーブルBの情報は  別レコードとして取得します。 ■テーブルAのキー1つに対して、テーブルBのキーは無いかも知れないし、  複数件あるかも知れません。  無い場合はテーブルAの情報のみを出力し、複数件ある場合はその全てを出力します。 ■テーブルBの項目2が同じ値のデータがある場合、テーブルBを出力したレコードと  同じレコードに、項目2が同じデータの情報を出力します。  項目2が同じデータが無い場合はこの情報は出力しません。  項目2が同じ値のデータは最大2件しかありません。 上記の例の場合に出力したい結果 ・出力テーブルC キー  フラグ   項目1  項目2  項目3   項目2が同じキー  項目2が同じ値 10  テーブルA   X 10  テーブルB         5    C 10  テーブルB         6    D        12            E 20  テーブルA   Y (テーブルC のフラグとは、テーブルAの情報かテーブルBの情報かを示します) これを出来ればSQL、出来なければPL/SQLで取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?