在SQL中,如何删除表中特定列的值的前4个字符?列名为“Student Code”,示例为“ABCD123Stu1231”。 我想从我的表中删除所有记录的前4个字符
请指引我
在SQL中,如何删除表中特定列的值的前4个字符?列名为“Student Code”,示例为“ABCD123Stu1231”。 我想从我的表中删除所有记录的前4个字符
请指引我
当前回答
内置的修剪功能非常适合这个目的。
SELECT trim(both 'ag' from 'asdfg');
btrim
-------
sdf
(1 riga)
http://www.postgresql.org/docs/8.1/static/functions-string.html
其他回答
你也可以在SQL中这样做。
substring(StudentCode,4,len(StudentCode))
语法
substring (ColumnName,<Number of starting Character which u want to remove>,<length of given string>)
内置的修剪功能非常适合这个目的。
SELECT trim(both 'ag' from 'asdfg');
btrim
-------
sdf
(1 riga)
http://www.postgresql.org/docs/8.1/static/functions-string.html
试试这个:
update table YourTable
set YourField = substring(YourField, 5, len(YourField)-3);
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 tblInvalidID
SET [ColumnName] =stuff(ColumnName, 1, charindex('#', ColumnName), ' ')