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

请指引我


当前回答

为什么使用LEN,这样就有了两个字符串函数?你只需要在…

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

其他回答

你也可以在SQL中这样做。

substring(StudentCode,4,len(StudentCode))

语法

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

试试这个。100%的工作

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

  

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

编辑: 为了解释,RIGHT有两个参数——要操作的字符串(或列)和要返回的字符数(从字符串的“右侧”开始)。LEN返回列数据的长度,然后减去4,这样RIGHT函数就把最左边的4个字符“留在”后面。

希望这是有意义的。

再编辑一下——我刚刚读了Andrew的回复,他很可能理解对了,我可能错了。如果是这种情况(并且你想要更新表而不仅仅是返回修改过的结果),你可以这样做:

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

他在正确的轨道上,但他的解决方案将保留字符串开始的4个字符,而不是丢弃上述4个字符。

试试这个:

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,从第5个字符开始,一直缩减到Code1长度小于4(开始时跳过的字符数)。