sql-server - 如何从多行数据的字符中删除特定字符串?
问题描述
我有一个带有 ID 列的表,它是一个 varchar,但是该列必须是 14 个字符长。提供此表的供应商留下了一些 15 个字符。数字的格式是“FL000000123456”。所以,我们问他们,他们告诉我们去掉前导零。我需要在此表上运行更新以删除第一个零,但我不知道如何做到这一点。我运行了 LEN 函数来恢复 LEN > 14 的那些。我可以逐个替换或运行更新,但该表有超过 100 万条记录,其中大约 45,000 条记录 > 14 错误。我大部分时间都不在 SQL 上工作,所以我不像你们中的一些人那样熟练,但我能得到的任何帮助都将不胜感激。
输出:FL0000000123456 -- 15 个字符
所需输出:FL000000123456 -- 14 个字符
解决方案
因此假设您要删除该3rd
字符,您可以使用STUFF
:
SELECT STUFF(YourColumn,3,1,'') AS NewColumn
FROM dbo.YourTable
WHERE LEN(YourColumn) = 15;
当然,这确实意味着如果你有一个像'FL1234567891234'
你最终会得到的值'FL234567891234'
,但我假设这不会发生。
推荐阅读
- python - 为什么 np.where 函数似乎也适用于值
- python - Django:过滤器返回空结果
- mysql - 如何创建一个触发器,在更新表中的列之前将整个旧行保存到新表中?
- azure - 用于修改 Azure Blob 存储中对象的 ContentType 的 Powershell 函数
- html - 将 css 添加到表格单元格 - HTML、CSS
- java - 通过派生类访问Java中定义的静态内部类
- ios - 错误:无法解析构建文件:XCBCore.BuildFile(namedReferencesCannotBeResolved)(在目标“CentralCasting”中)
- arduino-ide - 如何在 void 循环中使用 serial.available 两次?
- java - Eclipse maven 编译器不支持编译器插件 compilerArgs
- javascript - 用户滚动后如何防止 2 个视频同时播放