如何从varchar中获取最后四个字符?

Mic*_*l A 77 sql t-sql sql-server-2008

我正在尝试仅从varchar字段中获取最后四个字符.所有行都是不同的长度.我应该用什么功能来实现这个目标?

Voi*_*Ray 194

权利应该做:

select RIGHT('abcdeffff',4)
Run Code Online (Sandbox Code Playgroud)

  • 是的你是对的。 (17认同)

小智 17

SUBSTR(column, LENGTH(column) - 3, 4)
Run Code Online (Sandbox Code Playgroud)

LENGTH返回字符串的长度并SUBSTR从"位置长度 - 4"返回4个字符

  • 欢迎来到SO并感谢您发布答案.请考虑在代码中添加上下文并格式化代码. (2认同)
  • 这里有一个错误的bug。应为`SUBSTR(column,LENGTH(column)-3,4)`。如果长度恰好是4,我们需要从位置1开始并取4个字符。 (2认同)

Tim*_*ora 10

使用该RIGHT()功能:http://msdn.microsoft.com/en-us/library/ms177532(v = sql.105).aspx

SELECT RIGHT( '1234567890', 4 ); -- returns '7890'
Run Code Online (Sandbox Code Playgroud)


ale*_*ton 8

对于Oracle SQL,SUBSTR(column_name, -# of characters requested)将为给定查询提取最后三个字符.例如

SELECT SUBSTR(description,-3) FROM student.course;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这不适用于 ms sql/sql-server,对吧? (3认同)