我有一个主表,我从导入临时表中插入数据。这些数据不需要很多按摩,但是一列可以处理维度。我记录的尺寸是长度,宽度和高度。它们是三个独立的列,每个列都有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年。
答案 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;