【发布时间】:2012-09-20 01:25:56
【问题描述】:
我试图仅从 varchar 字段中获取最后四个字符。所有的行都是不同的长度。我应该使用什么功能来完成此操作?
【问题讨论】:
标签: sql sql-server-2008 tsql
我试图仅从 varchar 字段中获取最后四个字符。所有的行都是不同的长度。我应该使用什么功能来完成此操作?
【问题讨论】:
标签: sql sql-server-2008 tsql
正确的应该这样做:
select RIGHT('abcdeffff',4)
【讨论】:
SUBSTR(column, LENGTH(column) - 3, 4)
LENGTH 返回字符串的长度,SUBSTR 从“位置长度 - 4”返回 4 个字符
【讨论】:
SUBSTR(column, LENGTH(column) - 3, 4)。如果长度恰好是 4,我们需要从位置 1 开始,取 4 个字符。
RIGHT ( character_expression , integer_expression )
SELECT RIGHT(column, 4) FROM ...
还有其他string functions的列表。
【讨论】:
使用RIGHT()函数:http://msdn.microsoft.com/en-us/library/ms177532(v=sql.105).aspx
SELECT RIGHT( '1234567890', 4 ); -- returns '7890'
【讨论】:
对于 Oracle SQL,SUBSTR(column_name, -# of characters requested) 将提取给定查询的最后三个字符。 例如
SELECT SUBSTR(description,-3) FROM student.course;
【讨论】:
- 选择最后一个字符
WHERE SUBSTR('Hello world', -4)
【讨论】:
我在 SQL Server 中使用了 RIGHT 函数,它正在工作。
SELECT RIGHT( your_column_name, 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');
【讨论】: