116

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

4

8 回答 8

270

正确应该这样做:

select RIGHT('abcdeffff',4)
于 2012-09-20T01:27:21.363 回答
24
SUBSTR(column, LENGTH(column) - 3, 4)

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

于 2016-04-07T11:46:19.660 回答
19

RIGHT ( character_expression , integer_expression )

SELECT RIGHT(column, 4) FROM ...

还有其他字符串函数的列表。

于 2012-09-20T01:28:03.093 回答
13

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

SELECT RIGHT( '1234567890', 4 ); -- returns '7890'
于 2012-09-20T01:27:51.233 回答
9

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

SELECT SUBSTR(description,-3) FROM student.course;
于 2016-02-07T00:07:55.810 回答
2

您可以选择最后一个字符-

WHERE SUBSTR('Hello world', -4)
于 2021-01-31T07:30:17.620 回答
2

我在 SQL Server 中使用了 RIGHT 函数,它正在工作。

SELECT RIGHT( your_column_name, 4 );

--它将显示最后4位/字符

于 2021-09-22T09:23:01.243 回答
-3

在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');
于 2020-05-30T14:00:50.940 回答