使用T-SQL,我将如何获取varchar列的最后3个字符?
所以列文字是IDS_ENUM_Change_262147_190
,我需要190
Answers:
您可以使用以下任何一种方式:
SELECT RIGHT(RTRIM(columnName), 3)
要么
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
因为考虑它的更多方法总是好的:
select reverse(substring(reverse(columnName), 1, 3))
reverse
由于添加的答案与您的答案不同,添加了两个或四个以上电话的答案是否可以作为附加答案?如果我加密和未加密字符串怎么办?您说的是,任意无用的复杂性在某种程度上不是要考虑的。
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>
如果您想专门找到以所需字符结尾的字符串,那么这将对您有帮助...
select * from tablename where col_name like '%190'
WHERE LEFT(reversed,3) = REVERSE('190')
。(我很无聊,您能告诉我吗?)