0

SQL Server 2008,约 100 万行dbo.VDATA

桌子dbo.VDATA

PARTNO                 UDL3           ........
'100 - TXT'        '31OZ'
'101 - TXT'        '32 OZ'

桌子dbo.VDAT_AUX

PARTNOAUX            UDL12          ........
'100 - TXT'               ''
'101 - TXT'               ''

我需要完成的事情:

SELECT * 
FROM dbo.VDATA 
WHERE (PARTNO LIKE '% - TXT')

for each row in dbo.VDATA
set @Var_PARTNO-TEMP = PARTNO
set PARTNO = UDL3 & ' - TXT'
       ##Add ' - TXT' and set as PARTNO value
set dbo.VDAT_AUX.UDL12 = (REPLACE @Var_PARTNO-TEMP, ' - TXT', '')
       ##Remove ' - TXT' and set as UDL12 value
set dbo.VDAT_AUX.PARTNOAUX = dbo.VDATA.PARTNO

期望结果的示例:

桌子dbo.VDATA

PARTNO                 UDL3           ........
'31OZ - TXT'               '31OZ'
'32 OZ - TXT'             '32 OZ'

桌子dbo.VDAT_AUX

PARTNOAUX            UDL12          ........
'31OZ - TXT'         '100'      
'32 OZ - TXT'          '101'

我可以选择我想要的行,但我对如何逐步浏览和随机播放我需要的数据非常迷茫......任何帮助/建议将不胜感激,在此先感谢您!:)

4

1 回答 1

0

这是我们根据信息的猜测:

UPDATE vaux
SET UDL12 = REPLACE(v.PARTNO, ' - TXT', ''),
    PARTNO=v.UDL3,
    PARTNOAUX=v.PARTNO
FROM dbo.VDATA AS v
JOIN dbo.VDAT_AUX AS vaux ON v.PARTNO=vaux.PARTNOAUX
WHERE v.PARTNO LIKE '% - TXT'

最后一组 'PARTNOAUX=v.PARTNO' 可能不是必需的——因为如果值不正确,则 JOIN 将不起作用。

显然......你想在一些测试数据上尝试这个,而不是现场。

于 2013-10-08T20:08:13.443 回答