如果字段长度大于5,则获取最后剩余的字符

时间:2019-04-26 13:34:27

标签: sql sql-server

我想知道如果字段长度大于5,是否有办法从varchar字段中选择其余字符。

例如:

ID_Num

99984   
99923GF
99100EFK
99341LM
99145RL4C

我想要得到的是什么

ID_Num

GF
EFK
LM
RL4C

2 个答案:

答案 0 :(得分:7)

STUFF非常适合这样的事情:

SELECT STUFF(ID_Num,1,5,'')
FROM YourTable
WHERE LEN(ID_Num) > 5;

STUFF用于“替换”字符串中的字符。在这种情况下,它将用字符串''替换位置1(字符串的开头)的后5个字符;因此将其删除。

答案 1 :(得分:3)

使用RIGHTLEN可以达到预期的结果。

SELECT RIGHT(ID_Num, LEN(ID_Num) - 5) AS ID_Num
FROM TestTable
WHERE LEN(ID_Num) > 5;

或使用SUBSTRING

SELECT SUBSTRING(ID_Num, 6, LEN(ID_Num)) AS ID_Num
FROM TestTable;

包含示例数据的演示

DECLARE @TestTable TABLE (ID_Num VARCHAR (20));

INSERT INTO @TestTable (ID_Num) VALUES
('99984'),
('99923GF'),
('99100EFK'),
('99341LM'),
('991456RL4C');

SELECT RIGHT(ID_Num, LEN(ID_Num) - 5) AS ID_Num
FROM @TestTable
WHERE LEN(ID_Num) > 5;

输出:

ID_Num
-------
GF
EFK
LM
6RL4C