0

我有一个主表,我正在从导入临时表中插入数据。数据不需要大量的按摩,但是一列是处理维度的。我记录的尺寸是长度、宽度和高度。它们是三个独立的列,每个列都有 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。

4

1 回答 1

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;
于 2012-07-02T01:11:27.273 回答