文字列の末尾に無効な文字が含まれていてもいなくてもよい名前のテーブルがあります。どうすれば削除できますか?有効な文字は、[-ZA-Z0-9。)] 'です文字列から最後の 'n'個の無効な文字を削除します。
Create table dbo.temp(name varchar(200) null)
insert into dbo.temp values('Test name1')
insert into dbo.temp values('Test name2#')
insert into dbo.temp values('Test name3 %#%^&^&&&')
insert into dbo.temp values('------Test Name -----------')
私はこの
SELECT CASE WHEN RIGHT(RTRIM(Name),1) NOT LIKE '[a-zA-Z0-9.)]' THEN SUBSTRING(Name,1,LEN(Name)-1)
ELSE LTRIM(RTRIM(Name)) END as Tname FROM dbo.temp
を試してみました。しかし、これは唯一の最後の文字を削除します。
そして、最後の行は返す必要があります:------Test Name
任意の提案。
おかげ MR
これは、ユーザー定義の関数が必要な場合があります。 –
おそらくスペースも入れるべきでしょうか?また、無効な文字のすべてのインスタンスを削除したいのですか、「終了」でのみ削除しますか?最後に、どうやって終わりを定義しますか?または、現在無効なデータの唯一の場所であるあなたのデータのため、あなたは終わりを言っていますか? ( –
)ゴミデータがどこにあるのかという理由だけで終わりです。 – user2726975