如何删除表中特定列的第一个字符?

在SQL中,如何删除表中特定列的前4个字符的值? 列名是Student Code ,示例值是ABCD123Stu1231 。 我想从我的表中删除前4个字符的所有logging

请指导我

 SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn 

编辑:为了解释,RIGHT需要2个参数 – 要操作的string(或列)以及要返回的字符数(从string的“右侧”开始)。 LEN返回列数据的长度,我们减去四个,这样我们的RIGHT函数就会将最左边的4个字符留在“后面”。

希望这是有道理的。

再次编辑 – 我只是读了安德鲁的回答,他可能已经正确地交错了,而且我可能是错的。 如果是这种情况(并且你想更新表而不是只返回doctored结果),你可以这样做:

 UPDATE MyTable SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4) 

他在正确的轨道上,但他的解决scheme将保持在string的开始4个字符,而不是放弃所述4个字符。

 Stuff(someColumn, 1, 4, '') 

这就是说,从第一个1字符开始,将4字符replace为''

为什么使用LEN所以你有2个string函数? 所有你需要的是字符5 …

 ...SUBSTRING (Code1, 5, 8000)... 

尝试这个:

 update table YourTable set YourField = substring(YourField, 5, len(YourField)-3); 

这是一个简单的模拟你想要做什么:)

 CREATE TABLE Codes ( code1 varchar(10), code2 varchar(10) ) INSERT INTO Codes (CODE1, CODE2) vALUES ('ABCD1234','') UPDATE Codes SET code2 = SUBSTRING(Code1, 5, LEN(CODE1) -4) 

所以,使用最后一个声明对你要修剪的字段:)

SUBSTRING函数修改Code1,从第五个字符开始,继续减lessCODE1的长度(在开始时跳过的字符数)。

完成的事情

 DECLARE @v varchar(10) SET @v='#temp' select STUFF(@v, 1, 1, '') WHERE LEFT(@v,1)='#' 

你也可以在SQL中做到这一点..

 substring(StudentCode,4,len(StudentCode)) 

句法

 substring (ColumnName,<Number of starting Character which u want to remove>,<length of given string>) 

有内置的修剪function,是完美的目的。

 SELECT trim(both 'ag' from 'asdfg'); btrim ------- sdf (1 riga) 

http://www.postgresql.org/docs/8.1/static/functions-string.html

如果你必须删除前面有一个像#这样的特殊字符的前几个字符,这是一个很好的方法:

 UPDATE tblInvalidID SET [ColumnName] =stuff(ColumnName, 1, charindex('#', ColumnName), ' ') 

对于DB2的使用来说,这将是很好的分享: INSERT(someColumn, 1, 4, '')

DB2中不支持Stuff

尝试这个。 100%的工作

 UPDATE Table_Name SET RIGHT(column_name, LEN(column_name) - 1)