Получить последние оставшиеся символы, если длина поля больше 5 - PullRequest
4 голосов
/ 26 апреля 2019

Мне было интересно, есть ли способ выбрать оставшиеся символы из поля varchar, если длина поля больше 5.

Например:

ID_Num

99984   
99923GF
99100EFK
99341LM
99145RL4C

Что япытаюсь получить:

ID_Num

GF
EFK
LM
RL4C

Ответы [ 2 ]

7 голосов
/ 26 апреля 2019

STUFF отлично подходит для таких вещей:

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

STUFF используется для «замены» символов в строке. В этом случае он заменяет следующие 5 символов с позиции 1 (которая является началом строки) строкой ''; таким образом удаляя их.

3 голосов
/ 26 апреля 2019

Используя RIGHT и LEN, вы можете получить ожидаемый результат.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...