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

Sql 如何从varchar中提取最后四个字符?,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我试图只从varchar字段中获取最后四个字符。所有行的长度都不同。我应该使用什么功能来完成此任务?Right应该执行以下操作: select RIGHT('abcdeffff',4) 使用RIGHT()功能: 还有一个其他的列表。对于Oracle SQL,SUBSTR(列名称,-请求的字符数)将提取给定查询的最后三个字符例如 SELECT SUBSTR(description,-3) FROM student.course; LENGTH返回字符串的长度,SUBSTR从“位置长度-4”返

我试图只从varchar字段中获取最后四个字符。所有行的长度都不同。我应该使用什么功能来完成此任务?

Right应该执行以下操作:

select RIGHT('abcdeffff',4)
使用
RIGHT()
功能:


还有一个其他的列表。

对于Oracle SQL,
SUBSTR(列名称,-请求的字符数)
将提取给定查询的最后三个字符例如

SELECT SUBSTR(description,-3) FROM student.course;

LENGTH
返回字符串的长度,
SUBSTR
从“位置长度-4”返回4个字符。

在hackerrank上测试的解决方案

select distinct(city) from station
where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');
您可以使用
-

欢迎来到SO,感谢您发布答案。请考虑在代码中添加上下文并格式化代码。这里有一个错误。应该是
SUBSTR(列,长度(列)-3,4)
。如果长度正好是4,我们需要从位置1开始,取4个字符。请注意,这不适用于ms sql/sql server,对吗?是的,您是对的。
SELECT SUBSTR(description,-3) FROM student.course;
SUBSTR(column, LENGTH(column) - 3, 4)
select distinct(city) from station
where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');
WHERE SUBSTR('Hello world', -4)