• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLSERVERで関数作成?)

SQLSERVERでテーブル項目の指定文字列を一括削除する方法

このQ&Aのポイント
  • SQLSERVERでテーブル項目の指定文字列を一度に削除する方法について解説します。
  • Replace関数では一度に一つの文字列しか削除できないため、関数を作成する必要があります。
  • 作成した関数を使用して、テーブルの項目からピリオド、カンマ、ハイフン、スペース、スラッシュを一括削除することができます。

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

  • ベストアンサー
  • yorozu_ya
  • ベストアンサー率54% (76/140)
回答No.1

>Replace関数だと一度に一つしか削除できないようなので何か方法がないかと >思案しております。 Replace関数を入れ子にすればよろしいかと。 Replace(Replace(Replace(Replace(Replace(商品名, '.', ''), ',', ''), '-', ''), ' ', ''), '/', '') もちろん、関数を作ればカッコイイですけど。 ORACLE なら既に REGEXP_REPLACE なんて関数があります。

hirohiro_99
質問者

お礼

出来ました、ありがとうございます。 入れ子にするのは、何度かやってみてはいましたがSQLSERVER側で自動で一つに されてしまったので、出来ないものだと思っていました!! yorozu_yaさんの回答をコピーして、項目を入れ替えたらすんなり入りましたので 記述がおかしかったのだと思います。 大変助かりました、ありがとうございます。

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

関連するQ&A

  • EXCEL関数についてご質問です

    EXCELの関数の知識が無く、どなたか以下要件に対する対応方法があれば教えて頂ければ幸いです。 【概要】 ・シートA(インプット用)の各セルの入力値に対して、シートB(アウトプット用)に関数等を入れて変換出力をしたいと思っています。 (商品のマスタになるのですが、列の項目としては30項目くらいあり、例えばシートAの「商品名」列の全角文字をシートBに半角文字で出力する等の関数を作成しています。) 【やりたい事】 ・シートAの「商品名」列(I列)に「\n」という文字列が入っている行があった場合、シートBにはその行自体を出力しないという関数を組みたい 何か良い方法があればご教示いただければ助かります。どうぞよろしくお願いします。

  • エクセル VBA "-"ハイフンの削除

    お世話になります。 セルに含まれる文字列の中から"-"ハイフンを削除しようと思い、 Cells.Replace What:="-", Replacement:="" と記述したのですが、例えば 0-0-0-111 は 111 となってしまい、"0"も消えてしまいます。もちろん、"0-0-0-111 "は文字列です。 また、シート内の全てのセルが文字列にならなければいけないので関数式を入れることはできません。ハイフンの位置もその都度バラバラです。 よろしくお願いいたします。

  • SUBSTITUTE関数とREPLACE関数に関して

    こんにちは。 文字列と数字の間にハイフンを入れ、不要なゼロを消すことが できる関数を探しています。 例えば・・・ A1のセルに 【ABCD012345】 というデータが入っているとして、 最終的には 【ABCD-12345】 と表示させるようにしたいと考えています。 ABCDと数値の間にハイフンを入れ、数値の頭がゼロの場合は ゼロを削除して表示させるようにしたいのです。 今私がやっている方法は B1のセルに =REPLACE(A1,5,0,"-") と入れ、 ABCD-012345 と表示させ C1のセルに =SUBSTITUTE(B1,"-0","-") と入れ、不要なゼロをハイフンに置き換えて、 ABCD-12345 と2段階を経て表示させています。 これをもっと簡単にできる方法はありますでしょうか。 よろしくお願いいたします。

  • SQLServer2000で登録情報を知りたいです。

    VB.NETとSQLServer2000でWebアプリをつくろうと思っています。 VB.NETとSQLServer2000の接続がよくわからないので教えてください。 ある書籍でVB.NETとSQLServer2000の接続文字列は下記のとおりだと書いてありました。 '接続文字列を作成して接続を開始する sqlCn.ConnectionString = "data source=Server;" "initial catalog=DB201;" "user id=db201;" "password=db201;" "persist security info=True;" sqlCn.Open() ここでの「data source」「initial catalog」「user id」「password」などの情報をインストール済みのSQLServerで調べたいのですが、どのようにするのでしょうか? 「data source」がもしサーバー名であれは、サービスマネジャーで実行されているサーバー名でよいのでしょうか? どうか教えてください。

  • (たとえばreplace関数で)すべての文字列に対して置き換えを行うに

    (たとえばreplace関数で)すべての文字列に対して置き換えを行うには? よろしくお願いします。 ACCESSとVBをやっているのですが、 A行には下記の文字列があるとします。 BBBCCCDDD EEEGGGGFFF ああいいいいうう えええええおおほほほ これらについて、 「初めの3文字を***に置き換える」 「前から4文字目から3つを***に置き換える」 「最後の3文字を***に置き換える」 と言ったことは関数で可能なのでしょうか?

  • Left関数とRight関数を合わせたような

    こんにちは いつもお世話になっています。 A列に文字列があります。 文字の長さは不定ですが、左から3文字、右から4文字は共通して不要なので削除したいです。right,leftの両関数を合わせたような関数を教えてください。 二列で分けて処理するのではなく一回の関数で処理希望です。 =LEFT(A2,LEN(A2)-4)&RIGHT(A2,LEN(A2)-3) こんなので失敗しています。 よろしくお願いします エクセル2007

  • 取込データの改行を正しくしたい。

    SQLServerで外部のデータをインポートしたのですが そのデータの改行部分がSQLServerでは・で表示されています。 検索で調べてみて replace(列名,char(10),'') replace(列名,char(13),'') をやると・は消えるようになったのですが ・を消すのではなくSQLServerで使える改行文字に変更するには どの様にすればいいのでしょうか? 一応SQLServerのデータで改行文字を含んだ列を convert(binary,列名) を使用し改行文字を見たところ 0x0D000A00000.. となっており、0x0D000Aかなと思ってreplaceしたのですが うまく行きませんでした。

  • Access2002 Insert関数が未定義関数となり、エラー

    XP Access2002です。 ランキング形式のテーブルから、クエリを作成しています。 クエリでの表示は A1 となっているのですが、それにハイフン「-」を入れて、A-1としたいです。 「A1」は、テーブル名:「ランク」内のフィールド名:「順位」 SQLビューで insert(ランク!順位,2,0,'-') AS ランキング としたのですが、結果は、未定義関数と出てしまいます。 InsertをReplaceに変更したら、今度はアラーとは出ませんが、表示画面では、エラー表示になってしまいます。 構文が違うのでしょうか? SQLを使っていて、『未定義』とアラートが出たのは初めてですので、戸惑っています。

  • エクセル 集計するには

    __________A___________B_____________C 1______A001/A002______AAA___________10 2________A001________BBB____________15 3________A001________CCC____________20 (※文字の間隔を保つためにアンダーバーを入れていますが 実際はありません) 上のような表があります。 A列にあるA001やA002は商品名で、セル内に一つの商品名が ある場合と複数の商品名がスラッシュで区切られて入っている 場合があります。 それぞれの条件がB列にあり、A001がAAAの時、値は10と言う 感じでこの表は出来ています。 この表を 商品ごとに下記のように集計しなしたいのです. 問題はA列の商品名がスラッシュで区切られているので 困っています。 ________A________B________C_______D 10____________AAA______BBB_______CCC 11___A001______10_______15 _______20 12___A002______10 B2:D3に入れる関数式が解る方いらっしゃいましたら 是非教えていただけませんか? よろしくお願いいたします。

  • 文字列一番右がハイフンのものだけハイフン削除したい

    Excel2003を使用しています。以下のリストがあるとします。 01-100-10 01-100-1 01-100-11 01-100-11- 01-100-11- 01-100-11- 01-100-11- 01-100-11 01-100-11 01-100-11 01-100-1 01-100-12- 01-100-1- 01-100-13 01-100-13 このような文字列がずらーっと並んでいまして、その中で文字列一番右のハイフンを削除したいのです。一番右がハイフンでないものはそのままです。 ハイフンを削除するのは置換で出来ますが、それだと真ん中のハイフンも消えてしまいます。 Excelの関数はあまり得意でないので、いろいろ考えたのですがよくわかりませんでした。ご存知の方、ご教授願えないでしょうか。よろしくお願いいたします。