y テーブルにこれらの文字列があります。
abcdefg_1056-DF または
123erttzz-1292 または
gdfgdfg_1056
私が欲しいのは、最初の文字列のabcdefgなど、最初の部分だけです。したがって、すべての数字とすべての -DF を空の文字列に置き換えることができますが、その方法はわかりません。
アイデア?
正規表現の置き換えをお勧めします。ここを見てください-これが役立つと思います:
怠惰で醜い方法を好む場合(そして、非常に多くの行には推奨されません)、mwernerの回答のようにユーザー定義関数を省いて、次のように簡単に行うことができます:
select
replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(asdf, '0', ''), '1', ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9', ''), '_', ''), '-DF', '')
from
(
select
'abcdefg_1056-DF' as asdf
union select
'123erttzz-1292'
union select
'gdfgdfg_1056'
)q