SQL Server 2012中提取MODEL_NUMBER右侧10位字符的SQL实现
SQL Server 2012 提取MODEL_NUMBER右侧10个字符
解决方法
结合CHARINDEX定位目标字符串位置,再用SUBSTRING和LTRIM处理空格后截取字符,具体SQL如下:
SELECT [column], -- 提取MODEL_NUMBER右侧的10个有效字符(自动跳过后续空格) SUBSTRING( LTRIM(SUBSTRING([column], CHARINDEX('MODEL_NUMBER=', [column]) + LEN('MODEL_NUMBER='), LEN([column]))), 1, 10 ) AS Model_Number_Right10 FROM dbo.[table] WHERE [column] LIKE '%MODEL_NUMBER=%'
代码说明
CHARINDEX('MODEL_NUMBER=', [column]):找到MODEL_NUMBER=在字段中的起始索引+ LEN('MODEL_NUMBER='):跳过MODEL_NUMBER=本身,定位到后续内容的起始点LTRIM(...):去除MODEL_NUMBER=后续内容开头的空格(适配示例中带空格的格式)SUBSTRING(..., 1, 10):从处理后的内容开头截取10个字符
无空格场景简化
如果MODEL_NUMBER=后直接跟目标字符(无空格),可以简化为:
SELECT [column], SUBSTRING([column], CHARINDEX('MODEL_NUMBER=', [column]) + LEN('MODEL_NUMBER='), 10) AS Model_Number_Right10 FROM dbo.[table] WHERE [column] LIKE '%MODEL_NUMBER=%'
示例验证
针对你提供的样本数据,执行带空格处理的语句后,将返回312963532_(对应目标值312963532_1'的前10个有效字符)。
内容的提问来源于stack exchange,提问作者VQB
相关产品推荐
相关产品推荐

