SQL Server 2008,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'
我可以选择我想要的行,但是我很遗憾如何逐步完成数据并将其改为需要...任何帮助/建议将不胜感激,谢谢你提前! :)
答案 0 :(得分: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将无效。
显然......你想在一些测试数据上尝试这个,而不是实时。