-1

我有一个包含以下数据的表 XX:

REF        Part      DESC                                              Model
1    6200050     Screw, #10-12 x 1/2" Pan HD                    UC-24C UC-24CI Cosmetic
2    7006474     Kickplate, Silver Svce                     UC-24C UC-24CI Cosmetic
3    7002139     Cover, Unit Svce                           UC-24C UC-24CI Cosmetic
4    6201270     Screw, #8-18 x 5/8" PH PN SS-Gnd               UC-24C UC-24CI Cosmetic
6    7016528     Anti Tip Bracket - Svce - 23-7/8"              UC-24C UC-24CI Cosmetic
7    6200780     Screw, #10-24 x 1/2" PH Hex Washer             UC-24C UC-24CI Cosmetic

我需要做的是在字段中的两个型号之间拆分模型字段,为每个型号创建一个新记录,所有其他数据都相同,并将扩展数据(“化妆品”一词)留在每个记录上的模型字段。

4

2 回答 2

1

这是一小段 SQL,它将分解您的“型号”。您也许可以将其用作程序的一部分来执行您正在尝试执行的操作...

declare @s varchar(255)
declare @m1 varchar(255)
declare @m2 varchar(255)
declare @p varchar(255)

set @s = 'UC-24C UC-24CI Cosmetic'

SET @m1 = SUBSTRING(@s, 0, CHARINDEX(' ',@s))
SET @s = LTRIM(RTRIM(SUBSTRING(@s, LEN(@m1 + ' ') + 1, LEN(@s))))
SET @m2 = SUBSTRING(@s, 0, CHARINDEX(' ',@s))
SET @p = LTRIM(RTRIM(SUBSTRING(@s, LEN(@m2 + ' ') + 1, LEN(@s))))

SET @m1 = @m1 + ' ' + @p
SET @m2 = @m2 + ' ' + @p

select @m1,@m2

结果是:

UC-24C Cosmetic UC-24CI Cosmetic
于 2013-10-14T19:12:15.130 回答
0

以下SQL Fiddle示例演示了如何通过以下方式完成此操作:

INSERT INTO XXX (Ref, Part, Description, Model)
SELECT Ref, Part, Description, 
Left(Model,CHARINDEX(' ', Model)) 
    + Right(Model,Len(Model)-CHARINDEX(' ', Model, CHARINDEX(' ', Model) +1)) 
FROM XXX;

UPDATE XXX SET 
Model = Right(Model,Len(Model)-CHARINDEX(' ', Model))
WHERE CHARINDEX(' ', Model, CHARINDEX(' ', Model) +1)<>0

如果您的Ref字段是自动主键,则不要在 INSERT 语句中包含该字段。

于 2013-10-14T19:33:04.653 回答