0

インポート一時テーブルからデータを挿入するマスター テーブルがあります。データは多くのマッサージを必要としませんが、1 つの列はディメンションを処理する列です。私が記録する寸法は、長さ、幅、高さです。これらは 3 つの個別の列で、それぞれに varchar(10) があります。

インポート テーブルでは、これらが 1 つの列に結合され、「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 に答える