嵌入字符上的拆分字符串

时间:2012-07-02 01:03:21

标签: sql sql-server tsql

我有一个主表,我从导入临时表中插入数据。这些数据不需要很多按摩,但是一列可以处理维度。我记录的尺寸是长度,宽度和高度。它们是三个独立的列,每个列都有varchar(10)。

导入表将这些组合成一列,用“x”分隔,所以LxWxH。

最终我将这个转换写入可执行存储过程,但是我已经陷入了这种分裂。有人可以帮我解释一下如何对此进行编码吗?

我的插页模板是: 假设主表是ID(int),长度varchar(10),宽度varchar(10),高度varchar(10) 假设导入表是ID(int),Dims varchar(50)

数据看起来像(来自导入):

1   1.2x3.5x9.5
2   2.4x3.5x8.5
etc etc

代码:

insert into [mastertable]
id, length, width, height
select
from [importtable]

任何帮助表示赞赏! SQL Server版本是2008年。

1 个答案:

答案 0 :(得分:2)

INSERT dbo.mastertable (id, length, width, height)
SELECT 
  ID, 
  L, 
  W = SUBSTRING(R, 1, CHARINDEX('x', r)-1),
  H = SUBSTRING(R, LEN(R)-CHARINDEX('x', REVERSE(r))+2, 255)
FROM
(
  SELECT ID, LWH, 
    L = SUBSTRING(LWH, 1, CHARINDEX('x', LWH)-1),
    r = SUBSTRING(LWH, CHARINDEX('x', LWH)+1, 255)
  FROM dbo.importtable
) AS x;