使用带LEN功能的LEFT功能

Ste*_*aly 2 sql sql-server sql-server-2008

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

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

RIGHT(code, LEN(code) - 4) AS code_concat
Run Code Online (Sandbox Code Playgroud)

但它失败了这个错误

Msg 536, Level 16, State 2, Line 2
Invalid length parameter passed to the RIGHT function.
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*ric 6

用途substring:

 substring(code, 5, 1000)
Run Code Online (Sandbox Code Playgroud)

或者,如果它是varchar(max):

 substring(code, 5, len(code))
Run Code Online (Sandbox Code Playgroud)

  • 除了它应该是5,而不是4.字符串函数是从1开始的. (2认同)