sql - 根据现有文本的长度在 SQL Server 列中插入字符串
问题描述
我有一个 SQL Server 2008 表和一个包含混合字符串的特定列Title
,这些字符串都以“WM”开头并以商店编号结尾,例如 WM24
or WM1234
。
我想做的是将所有行标准化为标准格式WMXXXX
' (其中XXXX
是 4 位商店编号)。So WM26
would becomeWM0026
和WM123
will become WM0123
,但WM1234
不受影响。
这是可行的吗?
解决方案
您可以使用SUBSTRING(Title, 3, LEN(Title) - 2)
或RIGHT(Title, Len(Title)-2))
或Replace(Title, 'WM', '')
从 中提取数字WM
。然后用零填充它。
这是与Substring()
:
SELECT 'WM' + Right('0000' + Substring(Title, 3, LEN(Title) - 2), 4) as title
FROM yourtable;
或者Right()
:
SELECT 'WM' + Right('0000' + RIGHT(Title, Len(Title)-2)), 4) as title
FROM yourtable;
或者Replace()
:
SELECT 'WM' + Right('0000' + Replace(Title, 'WM', '')), 4) as title
FROM yourtable;
推荐阅读
- sql - 试图从两列中获取数据并正确格式化它们
- android - 如何将活动移动到具有特定片段目标的另一个活动?
- scrapy - 屈服于 s3 存储桶时无法连接蜘蛛关闭
- azure-devops - 将多个现有工作项链接到排队生成(来自 Azure Devops SDK)
- django - Django:如何请求数据并同时使其可编辑
- flutter - 如何在 Flutter 中一次运行多个下载?
- prolog - 如何在 Prolog 的主体中动态地断言具有条件的规则?
- javascript - 使用 Puppeteer 从当前页面重定向到另一个页面后如何获取 URL?
- php - Laravel strtotime没有显示正确的时间
- javascript - 使用Reducer React 方法