首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取大小(数字)

从字符串中提取大小(数字)
EN

Stack Overflow用户
提问于 2012-07-19 08:50:40
回答 3查看 167关注 0票数 0

我在表中有一列,其值存储为

代码语言:javascript
复制
HX CAP SCR GD5 1/2-13 X 3 3/4
HX CAP SCR GD8 1/2-13 X 4 1/4 
HX CAP SCR Grade 5 1/2-13 X 5 1/2
HX CAP SCR Grade 8 1/2-13 X 6 1/2

现在,我需要将这些值存储到另一个表中,比如

代码语言:javascript
复制
CATEGORY               SIZE
HX CAP SCR GD5         1/2-13 X 3 3/4
HX CAP SCR GD8         1/2-13 X 4 1/4
HX CAP SCR Grade 5     1/2-13 X 5 1/2
HX CAP SCR Grade 8     1/2-13 X 6 1/2

我需要将Category与Size值分开。

代码语言:javascript
复制
This is what I have so far, but it is not working the GD5 and GR8 are part of the category column.

SELECT  CustDesc
        ,'??????' as Category
        ,SUBSTRING(CustDesc,PatIndex('%[0-9.-]%', CustDesc),8000) as Size   
FROM [##CustParts]

上述查询的结果

代码语言:javascript
复制
CustDesc                    Category    Size
HX CAP SCR GD5 1/2-13 X 3   ??????          5 1/2-13 X 3 

请让我知道执行此操作的查询是什么……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-19 09:24:36

你需要制定一条看起来合理的规则。例如,大小看起来就是从“X”前的第一个空格开始。我们可以使用SQL Server中的(基本)字符串函数来实现这一点:

代码语言:javascript
复制
select ltrim(rtrim(left(val, pos1 - spacebefore))) as product,
     substring(val, pos1 - spacebefore + 1, 1000) as size
from (select t.*, charindex(' ', reverse(left(val, pos1-1))) as spacebefore
      from (select t.*,
                   charindex(' X ', val) as pos1
            from (select 'abce 15/3 x 2' as val) t
           ) t
     ) t
票数 1
EN

Stack Overflow用户

发布于 2012-07-19 09:19:27

根据您的示例,看起来数字1是解析每个元组中的值的引用。研究tsql的SQL CHARINDEX命令-查找字符串中文本的位置

是否还有更多的值需要解析?请提供更好的要解析的数据的横截面。- thx

票数 0
EN

Stack Overflow用户

发布于 2012-07-19 12:41:11

您好,如果您的字符串总是包含字符'1/2',那么这将完美地工作。

代码语言:javascript
复制
CREATE TABLE #tbl(col1 varchar(200))

INSERT INTO #tbl 
VALUES('HX CAP SCR GD5 1/2-13 X 3 3/4'),
('HX CAP SCR GD8 1/2-13 X 4 1/4'),
('HX CAP SCR Grade 5 1/2-13 X 5 1/2'),
('HX CAP SCR Grade 8 1/2-13 X 6 1/2')

select Left(col1,CHARINDEX('1/2',col1,1)-1),RIGHT(col1,len(col1)-(CHARINDEX('1/2',col1,1)-1)) from #tbl
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11552502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档