首页 > 解决方案 > 如何从多行数据的字符中删除特定字符串?

问题描述

我有一个带有 ID 列的表,它是一个 varchar,但是该列必须是 14 个字符长。提供此表的供应商留下了一些 15 个字符。数字的格式是“FL000000123456”。所以,我们问他们,他们告诉我们去掉前导零。我需要在此表上运行更新以删除第一个零,但我不知道如何做到这一点。我运行了 LEN 函数来恢复 LEN > 14 的那些。我可以逐个替换或运行更新,但该表有超过 100 万条记录,其中大约 45,000 条记录 > 14 错误。我大部分时间都不在 SQL 上工作,所以我不像你们中的一些人那样熟练,但我能得到的任何帮助都将不胜感激。

输出:FL0000000123456 -- 15 个字符

所需输出:FL000000123456 -- 14 个字符

标签: sql-server

解决方案


因此假设您要删除该3rd字符,您可以使用STUFF

SELECT STUFF(YourColumn,3,1,'') AS NewColumn
FROM dbo.YourTable
WHERE LEN(YourColumn) = 15;

当然,这确实意味着如果你有一个像'FL1234567891234'你最终会得到的值'FL234567891234',但我假设这不会发生。


推荐阅读