2012-01-10 14 views
2

フィールドに最初の4文字を切り捨てる関数を作成しようとしています。たとえば、フィールドの値がABC_123_EFGの場合は、123_EFGを返します。私はLEFTLEN機能の組み合わせを使用しようとしましたが、何の成功もありませんでした。ここでLEN関数でLEFT関数を使用する

は...私はそれがあるべきだと思うものです

RIGHT(code, LEN(code) - 4) AS code_concat 

しかし、それは私が間違って何をやっている

Msg 536, Level 16, State 2, Line 2 
Invalid length parameter passed to the RIGHT function. 

このエラーで失敗しますか?これを達成するための最良の方法ですか?

+0

すべての値は、常に4文字以上になりますか? – Greg

+0

'code'は少なくとも全部で4文字以上の長さですか? – AakashM

+0

ちょうどそれを見て、それはnullにすることができます... opps –

答えて

6

使用substring

substring(code, 5, 1000) 

それとも、それはvarchar(max)だ場合:

substring(code, 5, len(code)) 
+2

それは5でなく、4ではないはずです。文字列関数は1ベースです。 –

+0

@ liho1eye - 素晴らしいキャッチ! – Eric

3

はこれを試してください。..

select isnull(RIGHT(code, LEN(code) - 4),'') AS code_concat 
1

stuffは変更する場合に非常に便利ですちょっといい機能です文字列。

select stuff(code, 1, 4, '') 
関連する問題