プロが教えるわが家の防犯対策術!

以下のようなSELECT文を実行して

SELECT 船名 FROM 船マスタ

以下のような結果が返ってくるDBがあります。
船名はNVARCHAR型です。

船名
-------------
A800BCC
A800BCD
800BDC



この表示結果をアルファベット部分だけ(ABCC、ABCD、BDCみたいな)
にしたいのですが、そのような関数も用意されて無い様で
考え方すら浮かんできません。

格納されているデータからアルファベット部分または数字部分だけを
抜き出して表示する事は可能でしょうか?
よろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/08/30 12:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す