T-SQL子string – 最后3个字符
使用T-SQL,我将如何获取varchar列的最后3个字符?
所以列文本是IDS_ENUM_Change_262147_190
,我需要190
我在SQL方面经验不足。
非常感谢你的帮助!
SELECT RIGHT(column, 3)
这就是你所需要的。
你也可以用同样的方法做LEFT()
。
请记住,如果您在WHERE
子句中使用RIGHT()
不能使用任何索引。
你可以使用任何一种方式:
SELECT RIGHT(RTRIM(columnName), 3)
要么
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
因为更多的思考方式总是很好:
select reverse(substring(reverse(columnName), 1, 3))
declare @newdata varchar(30) set @newdata='IDS_ENUM_Change_262147_190' select REVERSE(substring(reverse(@newdata),0,charindex('_',reverse(@newdata))))
===解释===
我发现这样读起来更容易:
SELECT REVERSE( --4. SUBSTRING( -- 3. REVERSE(<field_name>), 0, CHARINDEX( -- 2. '<your char of choice>', REVERSE(<field_name>) -- 1. ) ) ) FROM <table_name>
- 反转文本
- 查找第一个出现的特定字符(即第一个出现FROM END的文本)。 获取此char的索引
- 再看一下翻转的文字。 从索引0到char的索引search。 这给你正在寻找的string,但相反
- 反转反转的string,给你你想要的子串
如果你想专门findstring结尾与所需的字符,那么这将帮助你…
select * from tablename where col_name like '%190'