Как удалить первые символы определенного столбца в таблице? - PullRequest
135 голосов
/ 11 июня 2009

В SQL, как я могу удалить первые 4 символа значений определенного столбца в таблице? Имя столбца Student Code, а примерное значение ABCD123Stu1231. Я хочу удалить первые 4 символа из моей таблицы для всех записей

Пожалуйста, ведите меня

Ответы [ 12 ]

0 голосов
/ 16 мая 2019

Верхний ответ имеет неожиданное поведение, когда длина строки меньше ожидаемой, потому что передача отрицательных значений в ПРАВО обрезает первые символы вместо всей строки. Вместо этого имеет смысл использовать RIGHT(MyColumn, -5).

create temp table foo (foo) as values ('123456789'),('12345678'),('1234567'),('123456'),('12345'),('1234'),('123'),('12'),('1'), ('');

select foo, right(foo, length(foo) - 5), right(foo, -5) from foo;

foo       len(foo) - 5  just -5   
--------- ------------  -------     
123456789 6789          6789 
12345678  678           678  
1234567   67            67   
123456    6             6    
12345                       
1234      234               
123       3                 
12                          
1                           
0 голосов
/ 28 июня 2016

Если вам нужно удалить первые несколько символов, которым предшествует специальный символ, такой как #, это хороший вариант:

UPDATE tblInvalidID
SET [ColumnName] =stuff(ColumnName, 1, charindex('#', ColumnName), ' ') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...