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> 
  1. 反转文本
  2. 查找第一个出现的特定字符(即第一个出现FROM END的文本)。 获取此char的索引
  3. 再看一下翻转的文字。 从索引0到char的索引search。 这给你正在寻找的string,但相反
  4. 反转反转的string,给你你想要的子串

如果你想专门findstring结尾与所需的字符,那么这将帮助你…

 select * from tablename where col_name like '%190'