使用带LEN功能的LEFT功能

时间:2012-01-10 15:40:34

标签: sql sql-server sql-server-2008

我正在尝试编写一个函数,它将切断字段中的前4个字符。例如,如果字段的值为ABC_123_EFG,则返回123_EFG。我尝试使用LEFTLEN函数的组合,但没有取得任何成功。

我认为这应该是......

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

但它失败并出现此错误

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

我做错了什么?这是实现这一目标的最佳方式吗?

3 个答案:

答案 0 :(得分:6)

使用substring

 substring(code, 5, 1000)

或者,如果它是varchar(max)

 substring(code, 5, len(code))

答案 1 :(得分:3)

试试这个..

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

答案 2 :(得分:1)

stuff是一个不错的小函数,在修改字符串时非常有用。

select stuff(code, 1, 4, '')