• ベストアンサー

文字列からアルファベットだけを抜き出すには

以下のようなSELECT文を実行して SELECT 船名 FROM 船マスタ 以下のような結果が返ってくるDBがあります。 船名はNVARCHAR型です。 船名 ------------- A800BCC A800BCD 800BDC ・ ・ この表示結果をアルファベット部分だけ(ABCC、ABCD、BDCみたいな) にしたいのですが、そのような関数も用意されて無い様で 考え方すら浮かんできません。 格納されているデータからアルファベット部分または数字部分だけを 抜き出して表示する事は可能でしょうか? よろしくお願いします。

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

  • ベストアンサー
  • kikaida-
  • ベストアンサー率69% (37/53)
回答No.1

結論から言うと、ご希望の関数はありません。 mid関数で文字をひとつずつ検査してアルファベット化どうかを判断する自前関数を作るしかありません。 create procedure alpha @moji varchar(100) as declare @kekka varchar(100) declare @i int set @kekka = '' set @i=1 while @i<=len(@moji) begin if substring(@moji,@i,1) >='a' and substring(@moji,@i,1)<='Z' set @kekka = @kekka + substring(@moji,@i,1) set @i=@i+1 end select @kekka

noname#12515
質問者

お礼

回答ありがとうございます。 関数が無ければ作れば良かったのですね、 サンプルまで書いていただき助かりました。